在使用macdeployqt尝试运行我的应用程序时出现此错误。
dyld:未加载库:@executable_path /../ Frameworks / QtQuick.framework / Versions / 5 / QtQuick 参考自:/x/build-x-Desktop_Qt_5_4_2_clang_64bit-Release/x.app/Contents/Frameworks/QtWebEngineCore.framework/Versions/5/QtWebEngineCore 原因:未找到图像
它只发生在QtWebEngine应用程序中。我有另一个使用QtWebKit构建得很好。
我的otool结果似乎很好:
jimmys-MacBook-Air:osx jimmy $ otool -L / development / _build_desktop / Application-Screensaver / Webshots \ Desktop.app/Contents/MacOS/Desktop / development / _build_desktop / Application-Screensaver / Webshots Desktop.app/Contents/MacOS/Desktop: /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa(兼容版本1.0.0,当前版本20.0.0) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices(兼容版本1.0.0,当前版本48.0.0) /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation(兼容版本300.0.0,当前版本1056.16.0) /System/Library/Frameworks/StoreKit.framework/Versions/A/StoreKit(兼容版本1.0.0,当前版本232.11.0) @loader_path /../ Frameworks / QtWebEngineWidgets.framework / Versions / 5 / QtWebEngineWidgets(兼容版本5.4.0,当前版本5.4.2) @loader_path /../ Frameworks / QtWebEngine.framework / Versions / 5 / QtWebEngine(兼容版本5.4.0,当前版本5.4.2) @loader_path /../ Frameworks / QtQuick.framework / Versions / 5 / QtQuick(兼容版本5.4.0,当前版本5.4.2) @loader_path /../ Frameworks / QtGui.framework / Versions / 5 / QtGui(兼容版本5.4.0,当前版本5.4.2) @loader_path /../ Frameworks / QtCore.framework / Versions / 5 / QtCore(兼容版本5.4.0,当前版本5.4.2) /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration(兼容版本1.0.0,当前版本1.0.0) /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit(兼容版本1.0.0,当前版本275.0.0) @loader_path /../ Frameworks / QtQml.framework / Versions / 5 / QtQml(兼容版本5.4.0,当前版本5.4.2) @loader_path /../ Frameworks / QtNetwork.framework / Versions / 5 / QtNetwork(兼容版本5.4.0,当前版本5.4.2) @loader_path /../ Frameworks / QtWidgets.framework / Versions / 5 / QtWidgets(兼容版本5.4.0,当前版本5.4.2) @loader_path /../ Frameworks / QtWebEngineCore.framework / Versions / 5 / QtWebEngineCore(兼容版本5.4.0,当前版本5.4.2) /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL(兼容版本1.0.0,当前版本1.0.0) /System/Library/Frameworks/AGL.framework/Versions/A/AGL(兼容版本1.0.0,当前版本1.0.0) /usr/lib/libstdc++.6.dylib(兼容版本7.0.0,当前版本60.0.0) /usr/lib/libSystem.B.dylib(兼容性版本1.0.0,当前版本1197.1.1) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit(兼容版本45.0.0,当前版本1265.21.0) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation(兼容版本150.0.0,当前版本855.17.0) /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices(兼容版本1.0.0,当前版本59.0.0) /usr/lib/libobjc.A.dylib(兼容版本1.0.0,当前版本228.0.0)
谢谢, 麦
答案 0 :(得分:1)
抱歉,这个错误报告的答案如下:
https://bugreports.qt.io/browse/QTBUG-41611
如果您的应用程序包含QtWebEngine,则macdeployqt应用程序还应部署QtWebEngineProcess和所需的支持文件。目前,这需要手动完成。
对于5.4你必须按照以下方式运行macdeployqt:
macdeployqt <TARGET>.app -executable=<TARGET>.app/Contents/MacOS/<TARGET>
当-executable开关非空时,macdeployqt只使用@loader_path,因此传递任意的exectable会触发我们需要让QtWebEngineProcess使用与主应用程序可执行文件相同的Qt二进制文件的行为。