我正在尝试将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
。看起来很好。
我已将此信息添加到我的xcode中,方法是将/usr/local/lib/liboauth.dylib
添加到Other Linker Flags
部分,将usr/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有关,但我不知道如何正确处理它。
答案 0 :(得分:0)
两个系统都一样吗? 32位/ 64位,Snow Leopard vs. Leopard。
我可以看到库是如何不同的,如果是这样的话就可以产生错误。
如果它们相同,则可能是您在项目设置中设置了链接器标记,并且它被目标设置覆盖。