Mac OS X如何更改应用程序查找库的位置

时间:2013-10-30 18:33:48

标签: macos qt packages

我正在Mac上使用Qt5.1.1构建应用程序。我正在使用包来创建安装程序。我进行了设置,以便安装程序将.app文件和所有库安装到/ Applications /中的文件夹中。问题是当我安装应用程序时,它不是在寻找我想要查找库的地方。

otool -L显示了这一点:

esu:
    libboost_system.dylib (compatibility version 0.0.0, current version 0.0.0)
    /Users/ken/Qt5.1.1/5.1.1/clang_64/lib/QtWidgets.framework/Versions/5/QtWidgets (compatibility version 5.1.0, current version 5.1.1)
    /Users/ken/Qt5.1.1/5.1.1/clang_64/lib/QtGui.framework/Versions/5/QtGui (compatibility version 5.1.0, current version 5.1.1)
    /Users/ken/Qt5.1.1/5.1.1/clang_64/lib/QtCore.framework/Versions/5/QtCore (compatibility version 5.1.0, current version 5.1.1)
    /Users/ken/Qt5.1.1/5.1.1/clang_64/lib/QtSerialPort.framework/Versions/5/QtSerialPort (compatibility version 5.1.0, current version 5.1.1)
    /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 744.1.0)
    /Users/ken/Qt5.1.1/5.1.1/clang_64/lib/QtNetwork.framework/Versions/5/QtNetwork (compatibility version 5.1.0, current version 5.1.1)
    /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

如何更改应用程序查找这些库的位置?

2 个答案:

答案 0 :(得分:2)

如果您运行macdeployqt,它会自动更改其中一些(Qt使用的那些)用于其他的,您可以使用install_name_tool

install_name_tool -change oldpath  newpath target

答案 1 :(得分:0)

我最终去了我发布的esu.app文件的位置,我刚刚使用了macdeployqt。尝试使用install_name_tool手动设置lib依赖项太麻烦了。

这是我使用的命令:

macdeployqt esu.app -verbose=2 -dmg