Liboauth连接不正确

liboauth not being linked correctly

本文关键字:不正确 连接 Liboauth      更新时间:2023-10-16

我正在尝试添加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.dylibOther Linker Flags部分,usr/local/include/Header Search Paths

我还在Library Search Paths中包含了相同的内容。

在我的系统上运行良好。但是,如果我将结果。app带到另一台(osx)计算机,它会给出/usr/local/liboauth.0.dylib错误(我通过打开。app并运行unix可执行文件来获得此错误)。

链接器在构建时不应该包含libauth dylib吗?换台电脑应该不会有问题吧?

如果答案是否定的,那么我将如何去包含libauth。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. 0"文件中使用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 vs. Leopard

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

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