【问题标题】:dyld: Library not loaded when using Qt QtWebEnginedyld:使用 Qt QtWebEngine 时未加载库
【发布时间】:2019-05-11 17:05:38
【问题描述】:

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

谢谢, 吉米

【问题讨论】:

    标签: qt qtwebengine


    【解决方案1】:

    抱歉,答案似乎在此错误报告中:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-23
      • 2015-02-05
      • 2015-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多