liboauth没有正确链接

时间:2011-10-22 05:11:18

标签: c++ xcode linker linker-errors

我正在尝试将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有关,但我不知道如何正确处理它。

1 个答案:

答案 0 :(得分:0)

两个系统都一样吗? 32位/ 64位,Snow Leopard vs. Leopard。

我可以看到库是如何不同的,如果是这样的话就可以产生错误。

如果它们相同,则可能是您在项目设置中设置了链接器标记,并且它被目标设置覆盖。