Macos ld:未知选项:-根据需要为否。有解决办法吗?
我正试图安装一个在Ubuntu上开发的项目,但现在我正试图让它在MaxOSX版本:10.10.5(约塞米蒂)上运行 OSX默认附带的当前ld版本:Macos ld:未知选项:-根据需要为否。有解决办法吗?,macos,makefile,linker,gnu,ld,Macos,Makefile,Linker,Gnu,Ld,我正试图安装一个在Ubuntu上开发的项目,但现在我正试图让它在MaxOSX版本:10.10.5(约塞米蒂)上运行 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 生
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
生成文件内容:
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,--不需要
OSX链接器不支持这个选项,我检查了手册页,看看我可以使用哪些替代品来代替它——没有,但找不到任何替代品
删除该选项也无济于事-会引发其他错误
我尝试从在线资源在OSX上安装GNU命令行工具。但我相信GNU链接器不包括在其中
此外,我还安装了gcc47,也没有帮助
有人能建议一些解决方案,并确认GNU链接器不能安装在OSX上吗
谢谢 不要尝试使用不支持的选项。确保在对象文件之后列出库。您可能需要担心(a)库名称的顺序,以及(b)不包括链接行中不需要的库。