0

我正在 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)

如何更改应用程序在哪里寻找这些库?

4

2 回答 2

2

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

install_name_tool -change oldpath  newpath target
于 2013-10-30T18:47:05.127 回答
0

我最终去了我的发布 esu.app 文件所在的位置,我只使用了 macdeployqt。尝试使用 install_name_tool 手动设置 lib 依赖项太痛苦了。

这是我使用的命令:

macdeployqt esu.app -verbose=2 -dmg
于 2013-10-30T21:38:23.227 回答