我正在尝试为使用我使用macports安装的某些库的游戏创建应用程序包。我想把依赖项放在bundle中,但是我不知道如何做到这一点。
我已编译游戏并尝试使用install_name_tool来更改使用的路径,以便可执行文件在bundle中搜索,我没有得到任何错误,但路径没有改变。例如。: install_name_tool -change libSDL-1.2.0.dylib @executable_path /../ Frameworks / libSDL-1.2.0.dylib meandmyshadow
可执行文件是使用CMake生成的Makefile构建的。
XCode会是更好的选择吗?我正在采取的步骤中是否有任何遗漏?
答案 0 :(得分:1)
回答有关如何使用install_name_tool
的具体问题:如果您使用otool -L meandmyshadow
查看meandmyshadow的库链接,它可能看起来像这样:
meandmyshadow:
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.11)
/opt/local/lib/libSDL-1.2.0.dylib (compatibility version 12.0.0, current version 12.3.0)
...
使用install_name_tool
更改程序中的引用时,需要使用完整引用。您指定要更改引用libSDL-1.2.0.dylib
,但需要指定绝对路径,例如/opt/local/lib/libSDL-1.2.0.dylib
:
install_name_tool -change /opt/local/lib/libSDL-1.2.0.dylib @executable_path/../Frameworks/libSDL-1.2.0.dylib meandmyshadow
关于如何将库包含到应用程序包中的更大问题,您可以在上面使用install_name_tool
进行手动操作,或者考虑尝试dylibbundler自动为您执行此操作。您可以使用MacPorts安装它:sudo port install dylibbundler
。