当前位置:  开发笔记 > IOS > 正文

ld:未知选项: - no-as-needed.任何解决方法?

如何解决《ld:未知选项:-no-as-needed.任何解决方法?》经验,为你挑选了0个好方法。

我正在尝试安装一个在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链接器吗?

谢谢!

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有