我正在开发一个以前完成并上传到app store的项目。当我在Xcode 5.0中运行这个应用程序时它工作正常但是当我在Xcode版本5.1.1(5B1008)上运行时我收到链接器错误在设备和模拟器上。
错误消息 - 找不到-llib的库。 (clang:错误:链接器命令失败,退出代码为1(使用-v查看调用))。
我搜索了很多,但我没有得到任何关于Library not found for -llib
错误的帖子。我是否需要在构建设置中更改以解决此问题?
答案 0 :(得分:6)
详细查看正在使用的-L
选项的链接器命令行:
然后使用终端或 Finder 查看这些目录中是否存在libXXX.a
文件。如果该库存在于其他位置,则需要配置库搜索路径:
但是,在应用程序中使用库时,您在问题中没有提供一些细节:
.a
)和头文件(如第二张图片所示)?答案 1 :(得分:0)
TL; DR:我在错误的目录中运行了make
,因此路径混乱了。
问题:
>make
linking ../build/release/yubikey-personalization-gui
/usr/x86_64-suse-linux/bin/ld: cannot find -llib
...
在编译Yubikey Personalization Tool时遇到了这个问题。我在我的-llib
中跟踪了Makefile
这个看起来像这样的电话:
...
LINK = @echo linking $@ && g++
...
LIBS = $(SUBLIBS) -L/usr/lib64 -L../lib/release -llib -lyubikey -lykpers-1 -lQtGui -L/usr/lib64 -L/usr/X11R6/lib -lQtCore -lpthread
...
$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
所以它设置了一个名为LINK
的变量,它将打印“链接”,然后调用g++
,这是编译器。
然后设置var LIBS
,它将保留不祥的-llib
。
然后它编写并运行命令$(LINK) ... $(LIBS)
。
其中g++
的参数为-llib
。
这是做什么的?结果-l<something>
告诉编译器使用something
- 库。所以它在这里请求名为lib
的库。这是奇怪的通用。我发现源代码附带了一个名为lib/
的目录,该目录位于../lib
。
所以从更高的目录开始make
修复它。
答案 2 :(得分:0)
您应该从xcode项目中的其他链接器标记中删除libstdc ++