我有一个C ++项目,我使用Xcode 9.2和gcc来编译它。我有一个链接的静态库列表,您可以在下图中看到其中一些:
如您所见,它们已正确列入“构建阶段”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的静态链接感到有点困惑,因为我期望这些库应该与可执行文件静态链接,但基于上面的结果,它们似乎是动态链接的。
我的目的是在其他计算机上运行可执行文件,而无需安装其他组件。