qt无法定位程序输入点问题

作者在QT项目中添加新类后遇到运行错误,经排查发现是由于不同版本的QTDLL和环境变量设置问题。最终通过替换特定编译器对应的QtDLL解决了问题。

        最近在公司新接手了一个QT项目,添加功能时在QT项目中增加了一个类(一个cpp一个h),增加完成后执行经典三板斧 清除->qmake->构建。

        执行完成后惊奇的发现程序无法运行,报错无法定位程序输入点在xxx.exe上。后续经过一系列的踩坑与撞墙终于定位到问题可能是由于我与同事的QT版本不同,并且他直接把他QT的DLL拷贝至了运行目录下,导致环境变量完全无用。最终在替换了Qt5Cored.dll,Qt5Guid.dll,Qt5Widgetsd.dll之后大功告成!

注:以上提到的三个dll需要根据你所选的编译器选择,不同的编译器虽然都有这几个文件,但是不是你项目的编译器的dll替换了也没用。

例如我是与VS2015联合编译,所以选择E:\QT\5.12.0\msvc2015_64\bin目录下的dll

       

### QT 程序运行时错误 “无法定位程序输入” 的解决方案 当遇到QT应用程序在执行时抛出“无法定位程序输入”的异常,通常意味着某些依赖项未能被正确加载或存在版本冲突。以下是详细的排查与修复方法: #### 1. 验证并修正环境变量设置 确保系统的`PATH`环境中仅包含一个特定版本的编译器路径,并且该路径指向当前项目所使用的编译器版本。这有助于防止不同版本间的DLL文件发生冲突[^5]。 #### 2. 使用 `windeployqt.exe` 工具部署必要的 DLL 文件 对于基于 Windows 平台开发的应用来说,利用 Qt 自带的 `windeployqt.exe` 脚本可以帮助自动复制所需的共享库至目标目录下。然而需要注意的是并非所有情况下它都能完美处理所有依赖关系;因此建议手动确认是否有遗漏的关键组件未被打包进去。 ```bash # 执行 windeployqt 命令来收集必需的 dlls 到发布版应用所在位置 path\to\Qt\Tools\QtCreator\bin\windeployqt.exe path\to\application.exe ``` #### 3. 检查并匹配编译器及其关联的 C++ 运行时库 (CRT) 确保用于构建项目的 MSVC 或 MinGW 编译器与其配套的标准模板库(STL) 和C/C++ Runtime Libraries(CRT)保持一致。可以通过安装相应版本 Visual Studio Redistributable Package 来获取这些资源[^4]。 #### 4. 审核第三方插件/扩展的支持状况 如果应用程序集成了来自外部源码仓库或其他渠道提供的附加功能模块,则需特别留意它们是否兼容当前主机平台以及是否存在潜在的安全隐患等问题[^1]。 通过上述措施往往能够有效缓解乃至完全消除此类启动失败现象的发生概率。当然实际操作过程中还需结合具体情况灵活应对可能存在的特殊情形。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值