当前位置: 首页 > article >正文

【QT】解决生成的exe文件出现“无法定位程序入口”或“找不到xxx.dll”的问题

【QT】解决生成的exe文件出现“无法定位程序入口”或“找不到xxx.dll”的问题

零、问题

使用QT编译好项目后,想直接在文件资源管理器中运行exe程序或想分享出去给别人使用发现出现如下问题:

  1. 系统错误:找不到xxx.dll。
    系统错误:找不到xxx.dll
  2. 无法找到入口:无法定位程序输入点xxx。
    无法找到入口:无法定位程序输入点xxx
    下文将介绍如何解决以上两个问题。

壹、环境介绍

QT的安装路径为D:\Qt
我这边生成的exe文件为一个Camera.exe,放在D:\Qt\project\swap目录下,程序比较简单,故只有一个exe文件。
目录结构

壹、解决“找不到xxx.dll”

在QT的安装目录下的版本号\mingw_64\bin目录下有一个windeployqt.exe程序,例如我的路径为:

D:\Qt\6.2.4\mingw_64\bin\windeployqt.exe

我们在生成的exe所在的文件夹中打开cmd窗口(提示符前面是你的exe程序所在的文件夹),输入如下命令,此程序会帮我们把一些exe运行需要用到的文件复制到当前目录下(前面的为windeployqt.exe的路径,后面的Camera.exe为你的exe程序文件名):

D:\Qt\6.2.4\mingw_64\bin\windeployqt.exe Camera.exe

windeployqt命令
会发现目录中多了一些文件,到时候分享给其他人使用需要把这些文件一起跟exe打包,这样可以解决第一个问题。

叁、解决“无法定位程序输入点xxx”

此时我们要找到QT安装目录下的版本号\mingw_64\bin目录(就windeployqt.exe程序所在目录),把里面的一些dll文件复制到你的exe程序所在的目录中即可,一般是复制这几个:

d3dcompiler_47.dll
libgcc_s_seh-1.dll
libstdc++-6.dll
libwinpthread-1.dll

不一定全用到,当然为了省事可以直接全复制过来也没关系,要是追求最小安装包,可以一个一个尝试,直到找到真正需要的那个dll。
像我这边就只需要复制一个libstdc++-6.dll就可以了。
成功运行

肆、总结

总之就是去QT安装目录下的版本号\mingw_64\bin目录里复制dll就好了~


http://www.kler.cn/a/392944.html

相关文章:

  • C++《继承》
  • OCR识别铁路电子客票
  • DataWorks on EMR StarRocks,打造标准湖仓新范式
  • 前端常用布局模板39套,纯CSS实现布局
  • AWS认证SAA-C0303每日一题
  • FatLab:我的编程课程系列
  • PHP中小学优校管理系统小程序源码
  • Unity学习笔记(4):人物和基本组件
  • flume采集netcat数据到kafka指定主题
  • docker更改数据目录
  • ⚙️ 如何调整重试策略以适应不同的业务需求?
  • sql中对象名称要加_的作用
  • PTE-中间件安全
  • aws xray通过设置采样规则对请求进行过滤
  • 算法学习第二弹——STL库学习 之 vector
  • q8:docker build构建镜像 yum -y install vim报错
  • Unity图形学之Shader2.0 模板测试
  • JSqlParser、JavaCC实操
  • Unity图形学之Shader灯光的设置
  • FPGA实现串口升级及MultiBoot(五)通过约束脚本添加IPROG实例
  • 【深圳大学】数据结构A+攻略(计软版)
  • Modbus TCP 西门子PLC与 多个设备进行通讯 使用Modbus Slave模拟多个设备ID
  • 1、使用vscode+eide+stm32cubeMx开发stm32
  • 基于迭代重加权最小二乘法的算法及例程
  • AR、VR、MR、XR - 20241110
  • 简单叙述 Spring Boot 启动过程