我正在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)
如何更改应用程序查找这些库的位置?
答案 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