我正在尝试安装一个在Ubuntu上开发的项目,但现在我试图让它在Max OSX上运行 - 版本:10.10.5(Yosemite).
我目前使用OSX默认使用的ld版本:
ld -v @(#)PROGRAM:ld PROJECT:ld64-253.3 configured to support archs: i386 x86_64 x86_64h armv6 armv7 armv7s armv7m armv7k arm64 (tvOS) LTO support using: LLVM version 3.7.0
Makefile内容:
PYLIB = -I/usr/include/python2.7 CLIBS = CC = gcc CFLAGS = $(PYLIB) $(CLIBS) -fPIC -O3 -std=c++11 LD = g++ LDFLAGS = -shared -L. -Wl,--no-as-needed $(CLIBS) SWIG = swig SWIGFLAGS = -c++ -python -extranative MODULE = iPlaneImporter CMODULE = $(MODULE).cpp CMODULE_H = $(MODULE).h CMODULE_OBJ = $(MODULE).o INTERFACE = $(MODULE).i CWRAPPER = $(MODULE)_wrap.cpp CWRAPPER_OBJ = $(MODULE)_wrap.o PYMODULE = $(MODULE).py SOLIB = _$(MODULE).so SRCS = $(CMODULE) $(CWRAPPER) OBJS = $(CMODULE_OBJ) $(CWRAPPER_OBJ) all: $(SOLIB) $(PYMODULE) .PHONY: clean clean: rm -f $(CWRAPPER) $(PYMODULE) $(OBJS) $(SOLIB) *.pyc $(CWRAPPER) $(PYMODULE): $(INTERFACE) $(CMODULE_H) $(SWIG) $(SWIGFLAGS) -o $(CWRAPPER) $(INTERFACE) $(OBJS): $(SRCS) $(CC) -c $(SRCS) $(CFLAGS) $(SOLIB): $(OBJS) $(LD) $(LDFLAGS) $(OBJS) -o $(SOLIB)
错误:
ld: unknown option: --no-as-needed collect2: error: ld returned 1 exit status make[1]: *** [_iPlaneImporter.so] Error 1
我相信这里的问题是
LDFLAGS = -shared -L.-Wl,--no-按需 $(CLIBS)
OSX链接器不支持此选项,我检查了手册页以查看我可以使用的替代项,而不是--no-as-needed,但找不到任何替换.
删除该选项也无济于事 - 抛出其他错误.
我尝试在这里从在线资源上安装OSX上的GNU命令行工具.但我相信GNU链接器不包含在其中.
另外我还安装了gcc47,也没有帮助.
有人可以为这个选项建议一些解决方法,并确认无法在OSX上安装GNU链接器吗?
谢谢!