dyld:使用Qt QtWebEngine

时间:2015-06-05 23:54:20

标签: qt qtwebengine

在使用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)

谢谢, 麦

1 个答案:

答案 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二进制文件的行为。