彻底解决Qt报错:无法定位程序输入点于动态链接库

问题描述

前段时间使用Qt Creator写程序,在最后打包的时候出错,期间尝试修改环境变量的顺序,后来发现不是环境变量的问题,但问题解决后并未将环境变量改回,导致今天使用VS2017联合Qt编译之前程序(之前已验证正确)的时候报错,具体错误信息如下:

因为之前已经正确编译,并进行了打包,可以放到其他未配置编程环境的电脑运行,而且从未对工程文件进行移动(如果对工程文件进行了移动,一些动态链接库的地址可能会发生改变),因此很大可能是电脑环境配置发生了改变。

解决方案

说很多时候需要调用动态链接库dll的时候会出现dll污染的情况比如你安装的某些程序路径中也包含了这个QtCore4的文件,而且人家的路径放在Path靠前的位置,你把Qt官方路径放在最后当然要吃亏的拉……

因此,将正在使用的编译器(我使用的是VS2017联合Qt进行开发,对应的编译器是MSVC2017_64,如果使用Qt Creator编译则是MinGW73_32,具体情况具体分析)放在其他编译器之前,所以我将两个编译器环境变量的顺序进行了交换如果有其他编译器,最好将正在使用的编译器的环境变量放在最前面)。

我一共有MSVC2017_64,MSVC2017_32,MinGW73_32,MinGW73_64,这四个编译器,但是经过测试好像只有前两个编译器能调用动态链接库dll,不会出现dll污染的情况,我经常我的也是前两个,所以如果有多个编译器的时候,尽量把自己最常使用的路径放在前两个

注意事项

首先要确保环境变量配置成功,一定要确保自己已经将环境变量进行了保存。

还要对VS(Qt也一样)进行重启,或者对电脑进行重启。

按照这样的方法,Qt生成的.exe文件就可以正常运行了

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。