我正在尝试将 liboauth.dylib 添加到我的 xcode 项目 (c++)。我已经配置并制作了库,它现在位于我的 /usr/local/lib
中,现在有:
liboauth.0.dylib
liboauth.dylib <- a link to liboauth.0.dylib
liboauth.li
liboauth.a
在 usr/local/include
中有 header 。看起来不错。
我通过将路径 /usr/local/lib/liboauth.dylib
添加到 Other Linker Flags
部分和 usr 将其包含在我的 xcode 中/local/include/
到 Header Search Paths
。
我还在 Library Search Paths
中包含了相同的内容。
这在我的系统上构建良好。但是,如果我将生成的 .app 带到另一台 (osx) 计算机,它会给出错误 /usr/local/liboauth.0.dylib
(我通过打开 .app 并运行 unix 可执行文件来得到这个).
链接器在构建时不应该包含 liboauth dylib 吗?然后转到另一台计算机时应该不会有问题吗?
如果答案是否定的,那么我将如何将 liboauth.dylib 包含到 .app 中,以便它可以在任何计算机(运行 osx)上运行?
具体错误如下:
Library not loaded: /usr/local/lib/liboauth.0.dylib
Referenced from: /Users/scratch/gameTest.app/Contents/MacOS/gameTest
Reason: image not found
编辑: 我找到问题了!在 liboauth.0.dylib 上使用 otool -l 命令我发现了这个:
Load command 3
cmd LC_ID_DYLIB
cmdsize 56
name /usr/local/lib/liboauth.0.dylib (offset 24)
time stamp 1 Thu Jan 1 12:00:01 1970
current version 9.1.0
compatibility version 9.0.0
有人可以帮我弄清楚如何改变这个吗?我认为它与 install_name_tool 有关,但我不知道如何正确处理它。
最佳答案
两个系统一样吗? 32 位/64 位,Snow Leopard 与 Leopard。
我可以看到库会有何不同,如果是这种情况,可能会产生错误。
如果它们相同,则可能是您在项目设置中设置了链接器标志,并且它被您的目标设置覆盖了。
关于c++ - liboauth 没有被正确链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7857555/