QtWebEngine - 找不到过程

Posted

技术标签:

【中文标题】QtWebEngine - 找不到过程【英文标题】:QtWebEngine - procedure not found 【发布时间】:2016-04-21 20:00:27 【问题描述】:

我有一个针对官方 Qt 5.4.2 x64 构建(支持 openGL)构建的简单 C++(非 Qt Quick)应用程序(不使用 .pro 机制)。 一旦我在我的应用程序中使用 QWebEngineView 对象,它就无法加载并显示消息“找不到指定的过程”。

在 gflags 的帮助下,似乎无法找到以下 demangled 过程:

public: __cdecl QOpenGLWidget::QOpenGLWidget(class QWidget * __ptr64,class QFlags<enum Qt::WindowType>) __ptr64

我不确定为什么找不到这个,为了测试Qt_DIR\bin中的所有dll,我已经把所有的dll放在应用程序旁边,以及所有的插件。 我用来构建我的应用程序的预处理器列表如下:

WIN32;_DEBUG;_WINDOWS;_USRDLL;WIN64;QT_WEBENGINEWIDGETS_LIB;QT_WEBENGINE_LIB;QT_QUICK_LIB;QT_PRINTSUPPORT_LIB;QT_WIDGETS_LIB;QT_GUI_LIB;QT_QML_LIB;QT_NETWORK_LIB;QT_UITOOLS_LIB;QT_CORE_LIB;WIN32PROJECT5_EXPORTS;PLUGIN_VENDOR_NAME="$(VendorName)";PLUGIN_VERSION="$(PluginVersion)";PLUGIN_NAME="$(PluginName)";%(PreprocessorDefinitions)

还有输入库:

Qt5Cored.lib;Qt5Guid.lib;Qt5Widgetsd.lib;Qt5WebKitd.lib;Qt5WebKitWidgetsd.lib;Qt5WebEngineWidgetsd.lib;Qt5WebEngined.lib;Qt5OpenGLExtensionsd.lib;Qt5OpenGLd.lib;Qt5Networkd.lib;Qt5Xmld.lib;D:\NotBackedUp\Tools\Qt\5.4\msvc2013_64_opengl\lib\qtmaind.lib;shell32.lib;Qt5Quickd.lib;Qt5PrintSupportd.lib;Qt5Qmld.lib;Qt5UiToolsd.lib;glu32.lib;opengl32.lib;gdi32.lib;user32.lib;o2d.lib;%(AdditionalDependencies)

我想在 Qt Creator 3.6.1 中尝试一个简单的示例,但它抱怨:Project ERROR: Unknown module(s) in QT: webenginewidgets

browser.exe 示例运行良好(使用 Visual Studio 构建)

你知道哪里出了问题吗? PS:我在 Windows 8.1 上。

【问题讨论】:

最终,我想要的是使用 OAuth 2 登录到谷歌后端。所以我需要显示一个浏览器,它会要求用户登录以检索访问令牌。如果您知道在 Qt 中执行此操作的替代方法,我很乐意 :) 【参考方案1】:

对于未找到的过程,我的 dll 是一个 Qt 应用程序的插件,它不是用 opengl 支持构建的。只有我的 dll 是用 opengl 支持构建的。 初始化插件时,应用程序使用自己的 dll 而不是我的……因此无法为 web 引擎提供任何 opengl 支持。

对于 Qt Creator,它自动选择了错误的工具包。我必须创建一个映射到正确 Qt 二进制文件的新工具包(支持 opengl):请遵循:http://doc.qt.io/qtcreator/creator-configuring-projects.html

希望对大家有所帮助

【讨论】:

以上是关于QtWebEngine - 找不到过程的主要内容,如果未能解决你的问题,请参考以下文章

PyQt WebEngine 设置 http 标头

Mendeley 找不到“Qt WebEngine 插件”(Linux 桌面应用程序)

在安装SAP B1时候出现找不到存储过程的问题

matlab运行过程中出现找不到指定模块的问题

为啥在集合中找不到 Mysql 存储过程参数?

QWebengineView:用id打开本地文件