Xcode链接器错误:ld:库没有找到-twsapi
Xcode linker error: ld: library not found for -twsapi
我已经使用Makefile编译并安装了i386
架构的库。库位于/usr/local/lib/twsapi
,头位于/usr/local/include/twsapi
。
在另一个项目中使用该库,我在Build Settings> Link Binary With Libraries下添加了libtwsapi.a
,并将/usr/local/include
添加到HEADER_SEARCH_PATH
变量。
构建过程在链接部分失败,错误消息ld: library not found for -twsapi
,即使我已经引用了库。如果我删除到二进制库的链接,我会得到很多像Undefined symbols for architecture i386:
这样的错误,这是有意义的,因为在这种情况下它找不到库。这证实了库确实在第一个地方被找到了。
知道是怎么回事吗?传递给链接器的参数如下:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
-arch i386
-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk
-L/Users/morten/Library/Developer/Xcode/DerivedData/test_project-gwzyzroxzbyejngtpizlynumphvo/Build/Products/Debug
-L/usr/local/include
-L/usr/local/include/twsapi
-F/Users/morten/Library/Developer/Xcode/DerivedData/test_project-gwzyzroxzbyejngtpizlynumphvo/Build/Products/Debug
-F/usr/local/lib
-filelist /Users/morten/Library/Developer/Xcode/DerivedData/test_project-gwzyzroxzbyejngtpizlynumphvo/Build/Intermediates/test_project.build/Debug/test_project.build/Objects-normal/i386/test_project.LinkFileList
-mmacosx-version-min=10.9
-stdlib=libc++
-Xlinker
-dependency_info
-Xlinker /Users/morten/Library/Developer/Xcode/DerivedData/test_project-gwzyzroxzbyejngtpizlynumphvo/Build/Intermediates/test_project.build/Debug/test_project.build/Objects-normal/i386/test_project_dependency_info.dat
-o /Users/morten/Library/Developer/Xcode/DerivedData/test_project-gwzyzroxzbyejngtpizlynumphvo/Build/Products/Debug/test_project
没有找到库。你关于"首先确实找到了库"的论点是错误的,因为链接器从来没有列出未定义的符号——它在无法找到所有指定的库时就停止了。
你的问题在于链接器的这些参数指定了额外的路径来搜索库:
-L/usr/local/include -L/usr/local/include/twsapi
请注意,您指定的链接路径是/usr/local/include,而不是/usr/local/lib,这是您的库所在的位置。
你需要将/usr/local/lib添加到Xcode中的库搜索路径中进行链接。头搜索路径用于编译。从日志中可以看出,您在两个条目中都有条目,但是Library Search Paths条目不正确。
相关文章:
- ld:bind_at_load和-bitcode_bundle(Xcode设置ENABLE_bitcode=YES)不能
- C++ 中的编译错误:未定义对"主"的引用 collect2:错误:ld 返回 1 个退出状态
- /usr/bin/ld: cannot find -lc++
- 解决"ld: library not found for -ltensorflow_framework.2.3.0"
- 编译 Boost 时在 OS X 上的"ld:未知选项:-soname"
- 使 ld 忽略来自 /etc/ld.so.conf 的目录
- 编译问题:在函数"_start"中:未定义对"主"的引用 collect2:错误:ld 返回 1 个退出状态
- 试图在崇高中奔跑. 错误 已发生: 收集2.exe: 错误: ld 返回 1 退出状态
- collect2:错误:ld 返回 1 个退出状态未定义的引用
- LD:尝试编译项目时找不到架构x86_64符号
- Linux ld 如何解释 -lSomething::AnotherSomething(如 /usr/bin/ld: 找
- LD 找不到生成的函数
- C++ collect2:错误:ld 返回 1 退出状态
- OS X: ld: 找不到 -lstdc++ 的库
- Mac Snow Leopard 上的 Qt 5.3.2:ld:在架构x86_64 [clang、Objective-C
- 找不到 -llibmysqld Collect2.exe:错误:ld 返回 1 退出状态
- ld 链接器错误,未定义对主函数的引用
- 使用 Arduino 对 ATtiny10 进行编程 ( "ld.exe" 错误)
- 每次我要使用外部资源时,我都会得到:collect2。exe:错误 ld 返回 1 退出状态
- Xcode链接器错误:ld:库没有找到-twsapi