在OS X上部署Qt应用程序出现错误

3
我正在尝试使用macdeployqt在OS X上部署一个Qt应用程序:
macdeployqt MyApplication.app -dmg
该应用程序使用Qwt库,PRO文件中包含如下所示的内容:
macx: QWT_ROOT = /usr/local/qwt-6.1.0 include ( $${QWT_ROOT}/features/qwt.prf )
当我运行macdeployqt命令时,会收到以下错误消息:
ERROR: no file at "/Library/Frameworks/qwt.framework/Versions/6/qwt.framework/Versions/6/qwt"
我不确定,但似乎部署步骤正在查找错误路径上的Qwt库,例如:
"/Library/Frameworks/qwt.framework/Versions/6/qwt.framework/Versions/6/qwt"
而实际应是:
"/Library/Frameworks/qwt.framework/Versions/6/qwt"
我该怎么解决呢?

作为解决方法,可以创建目录 sudo mkdir -p /Library/Frameworks/qwt.framework/Versions/6/qwt.framework/Versions/6/ 并创建一个简单的桥接虚拟链接 ln -s /usr/local/qwt-6.1.3/lib/qwt.framework/Versions/Current/qwt /Library/Frameworks/qwt.framework/Versions/6/qwt.framework/Versions/6/qwt,如此处所述。注意:我不确定它是否解决了问题,因为我还有其他问题,但是那个错误消息消失了。 - KelvinS
1个回答

3

我使用brew listbrew remove qtbrew remove qt5卸载了其他的qt版本。我还注意到我安装了pyqt(但没有使用它),所以我也使用brew remove pyqt将其删除。

然后,我重新安装了Qt 5.3.2并遇到其他问题:

Project ERROR: Xcode not set up properly. You may need to confirm the license agreement by running /usr/bin/xcodebuild.

这个问题是通过将Qt_install_folder/5.7/clang_64/mkspecs/features/mac/default_pre.prf文件中的isEmpty($$list($$system("/usr/bin/xcrun -find xcrun 2>/dev/null")))命令更改为isEmpty($$list($$system("/usr/bin/xcrun -find xcodebuild 2>/dev/null")))来解决的。具体请参考这里:Qt Creator - Project ERROR: Xcode not set up properly. You may need to confirm the license agreement by running /usr/bin/xcodebuild

还有一个问题:

Could not resolve SDK path for 'macosx10.8'

这个问题是通过将QtPath/5.3/clang_64/mkspecs/qdevice.pri文件中的!host_build:QMAKE_MAC_SDK = macosx10.8更改为!host_build:QMAKE_MAC_SDK = macosx10.12来解决的。具体请参考这里:Error: Could not resolve SDK path for 'macosx10.8'

所以,我在Qt目录下运行了以下命令:

/Users/kuser/Qt5.3.2/5.3/clang_64/bin/macdeployqt MyApplication.app -dmg

并且它奏效了。

我在下面的问题评论中找到了这些解决方案:

Qt5无法找到平台插件Mac OS X

注意:这不直接解决macdeployqt错误,但由于它是Qt安装的一部分,重新安装它解决了我的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接