You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qt使用QtWebEngine模块时出现LNK2019等链接报错问题

Qt 6 下 QtWebEngine 编译触发 LNK2019 链接错误修复方案

问题根因

你遇到的报错分为两类,分别是代码语法问题、项目依赖配置缺失问题,不存在复杂的环境兼容问题:

  • 第三行#include指令末尾多打了一个右尖括号,对应编译器提示的「#include指令末尾存在多余token」警告。
  • 所有LNK2019、LNK1120链接错误的核心原因是没有在构建配置中添加QtWebEngine及其依赖模块的链接选项,链接器找不到对应类、调试相关函数的实现符号。Qt 6中QtWebEngine拆分了多个子模块,且强依赖Qml模块,只引入头文件不添加链接配置必然触发这类错误。

修复步骤

  1. 先修正代码中的语法问题,删除头文件引用末尾多余的尖括号,同时补全缺失的头文件引用、给URL加上https协议头(否则Qt会默认识别为本地文件路径,后续页面加载会失败),修正后的代码如下:
#include <QApplication>
#include <QUrl>
#include <QWebEngineView>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWebEngineView j;
    j.setUrl(QUrl("https://elodream.herokuapp.com"));
    j.resize(600, 600);
    j.show();

    return a.exec();
}
  1. 按你用的构建系统,补全模块依赖配置:
    • 如果你用qmake构建:打开项目的.pro文件,找到QT +=开头的配置行,补充需要的模块,修改后执行一次qmake再重新构建:
    QT += core gui widgets webenginewidgets webenginecore qml
    
    • 如果你用CMake构建:打开CMakeLists.txt,补全find_package和链接项配置:
    find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets WebEngineWidgets WebEngineCore Qml)
    target_link_libraries(你的项目名称 PRIVATE
        Qt6::Core Qt6::Gui Qt6::Widgets
        Qt6::WebEngineWidgets Qt6::WebEngineCore Qt6::Qml
    )
    
  2. 如果补全配置后仍报QQmlDebuggingEnabler相关的链接错误,打开Qt Maintenance Tool检查当前安装的Qt 6.2.4 MSVC2019 64bit组件,确认已经勾选安装了Qt WebEngine、Qt Qml模块,缺的话直接补装即可。
  3. 所有配置修改完成后,先删除之前生成的整个build构建目录,重新执行配置、全量编译,即可正常生成可执行文件。

注意:不要在修改完构建配置后直接增量编译,旧的构建缓存会导致配置不生效,一定要清空构建目录重新配置。

内容的提问来源于stack exchange,提问作者ngdream

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 04:39:20