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

使用windeployqt生成的Qt程序无法运行的问题求助

Windows下Qt Creator构建Qt应用时DirectX相关DLL缺失及入口点错误解决方法

问题背景

跨平台Qt Widgets应用在Ubuntu和Mac环境下通过make可正常编译构建,但在Windows系统使用Qt Creator(Qt 6.7.2 MinGW 64位套件)构建后,出现以下问题:

  • 执行windeployqt时提示警告:Warning: Cannot find any version of the dxcompiler.dll and dxil.dll.
  • 运行生成的exe文件时报错:the procedure entry point...

解决步骤

1. 替换适配MinGW 64位的DirectX DLL文件

Chocolatey安装的DirectX组件针对MSVC环境,与MinGW编译程序不兼容,需更换为对应版本的DLL:

  • 从Windows系统目录C:\Windows\System32中复制64位版本的dxcompiler.dll和dxil.dll到你的Debug输出目录Z:\redatamguiwindows\build\Desktop_Qt_6_7_2_MinGW_64_bit-Debug
  • 若系统目录版本不兼容,可安装微软DirectX End-User Runtime,从其安装目录中提取适配64位的对应DLL

2. 修正windeployqt运行环境

你设置的VCINSTALLDIR是MSVC环境变量,会干扰MinGW版本windeployqt的依赖检测,直接执行以下PowerShell命令即可:

cd Z:\redatamguiwindows\build\Desktop_Qt_6_7_2_MinGW_64_bit-Debug
& "C:\Qt\6.7.2\mingw_64\bin\windeployqt.exe" redatamguiwindows.exe

3. 检查并修正Qt项目配置

  • 确认构建套件(Kit)选择的是Desktop Qt 6.7.2 MinGW 64-bit,而非MSVC套件
  • 检查项目.pro文件,确保包含必要模块:QT += widgets,移除不必要的DirectX相关依赖配置
  • 清理旧构建文件:点击Qt Creator菜单栏「构建」→「清理项目」,之后重新构建项目

4. 排查入口点错误根源

procedure entry point错误通常由DLL版本不匹配导致:

  • 确保所有复制的DLL为64位版本(避免误复制C:\Windows\SysWOW64下的32位DLL)
  • 验证DLL与MinGW编译器版本兼容,若问题仍存在,可尝试从其他兼容的MinGW编译项目中获取对应DLL

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 09:35:10