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

Windows环境下Qt动态链接DLL位置及许可证合规链接咨询

解决Windows 11 + VS2022动态链接Qt 6.5.0开源版的问题

1. 确认头文件与库文件路径

你推测的头文件路径D:\Qt\6.5.0\msvc2019_64\include是正确的,该目录包含Qt所有模块的头文件,按需添加到项目的附加包含目录即可。

注意:编译链接阶段不能直接使用bin目录下的DLL,DLL是程序运行时依赖的文件,编译链接需要的是D:\Qt\6.5.0\msvc2019_64\lib目录下的导入库(.lib)——这是你之前编译失败的核心原因。

2. Visual Studio 2022项目配置步骤

直接手动配置项目属性即可完成动态链接,无需从源码编译Qt:

  • C/C++ -> 常规 -> 附加包含目录:添加D:\Qt\6.5.0\msvc2019_64\include(若用到特定模块如Qt Widgets,可额外添加D:\Qt\6.5.0\msvc2019_64\include\QtWidgets,不过Qt的头文件结构支持自动检索,添加基础路径后大多模块可自动找到)
  • 链接器 -> 常规 -> 附加库目录:添加D:\Qt\6.5.0\msvc2019_64\lib
  • 链接器 -> 输入 -> 附加依赖项:根据用到的Qt模块添加对应导入库,例如:
    • 基础依赖:Qt6Core.lib(发布版)/ Qt6Cored.lib(调试版)、Qt6Gui.lib/Qt6Guid.lib
    • 若使用Qt Widgets:Qt6Widgets.lib/Qt6Widgetsd.lib
      (注意调试和发布版需对应,不可混加)
  • 运行时部署:将D:\Qt\6.5.0\msvc2019_64\bin下对应版本的DLL复制到程序输出目录(如Debug/Release文件夹),例如调试版需要Qt6Cored.dll、Qt6Guid.dll、Qt6Widgetsd.dll,发布版去掉后缀d。

3. 非开源程序的许可证合规说明

Qt开源版采用LGPLv3等许可证,动态链接Qt预编译库完全允许你的程序闭源,只需遵守以下核心条款:

  • 允许最终用户替换程序中的Qt库(比如使用自行编译的版本)
  • 向用户提供你使用的Qt版本信息
  • 仅当你修改了Qt源码并基于修改后的库链接时,才需要开源你的Qt修改部分(使用官方预编译库则无需此步骤)

无需额外从源码编译Qt,官方提供的msvc2019_64预编译套件完全符合许可证要求,直接使用即可。

4. 为什么不能像GLFW那样直接链接DLL?

GLFW的DLL通常附带对应导入库,且部分场景支持动态加载(LoadLibrary),但Qt模块依赖复杂,官方设计的标准用法是通过导入库(.lib)完成编译链接、运行时加载DLL,这是Qt的工程架构决定的,和GLFW的轻量库模式不同。

内容的提问来源于stack exchange,提问作者Christopher Barrios Agosto

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 02:12:10