1

我有一个 C++ 项目,我使用 Xcode 9.2 和 gcc 来编译它。我有一个链接的静态库列表,您可以在下图中看到其中的一些:

将二进制文件与 Xcode 的库部分链接

如您所见,它们已正确列在“构建阶段”XCode 面板的“使用库链接二进制文件”部分中。

如果我在用于生成它的同一台机器上运行可执行文件,一切正常。当我尝试在另一台 Mac 上运行二进制文件时,问题就开始了。程序未启动并返回以下消息:

dyld: Library not loaded: /usr/local/opt/freetype/lib/libfreetype.6.dylib
  Referenced from: /Users/user/Desktop/Joyce
  Reason: image not found
Abort trap: 6

在可执行文件上运行otool -L这是结果:

/usr/local/opt/fontconfig/lib/libfontconfig.1.dylib (compatibility version 12.0.0, current version 12.1.0)
/usr/local/opt/freetype/lib/libfreetype.6.dylib (compatibility version 23.0.0, current version 23.0.0)
/usr/local/opt/cairo/lib/libcairo-script-interpreter.2.dylib (compatibility version 11403.0.0, current version 11403.12.0)
/usr/local/opt/cairo/lib/libcairo.2.dylib (compatibility version 11403.0.0, current version 11403.12.0)
/usr/local/opt/cairo/lib/libcairo-gobject.2.dylib (compatibility version 11403.0.0, current version 11403.12.0)

所以我对与 Xcode 的静态链接有点困惑,因为我希望这些库应该与可执行文件静态链接,但根据上述结果,它们似乎是动态链接的。

我的目的是在其他机器上运行可执行文件而不安装其他组件。

4

0 回答 0