彻底解决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文件就可以正常运行了