0

使用 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/桌面:/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/版本/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)framework/Versions/A/CoreServices(兼容版本 1.0.0,当前版本 59.0.0) /usr/lib/libobjc.A.dylib(兼容版本 1.0.0,当前版本 228.0.0)framework/Versions/A/CoreServices(兼容版本 1.0.0,当前版本 59.0.0) /usr/lib/libobjc.A.dylib(兼容版本 1.0.0,当前版本 228.0.0)

谢谢,吉米

4

1 回答 1

2

抱歉,看起来答案在此错误报告中:

https://bugreports.qt.io/browse/QTBUG-41611

如果您的应用程序包含 QtWebEngine,则 macdeployqt 应用程序还应部署 QtWebEngineProcess 和所需的支持文件。目前这需要手动完成。

对于 5.4,您必须按照以下方式运行 macdeployqt:

macdeployqt <TARGET>.app -executable=<TARGET>.app/Contents/MacOS/<TARGET>

macdeployqt 仅在 -executable 开关不为空时使用 @loader_path,因此在此处传递任意可执行文件会触发我们需要让 QtWebEngineProcess 使用与主应用程序可执行文件相同的 Qt 二进制文件的行为。

于 2015-06-06T03:35:11.437 回答