【Qt打包】windeployqt.exe “Warning:cannot find GCC installation directory.g++.exe must be in the path“

现象:

1.使用Qt自带工具对.exe进行打包时,出现了警告"Warning:cannot find GCC installation directory.g++.exe must be in the path",但最后完成了打包,且.exe在本地电脑能正常打开和运行;

2.使用Enigma Virtual Box进一步打包,新生成的.exe在无任何依赖项.dll的路径下能正常打开和运行,但拷贝到其他没有安装Qt的电脑上无法打开,弹窗提示“Cannot load xxx.dll ”;

原因分析:

1.根据网上的建议,试过将windeployqt.exe所在的路径添加到环境变量中,也试过从Qt自带的命令行工具运行windeployqt.exe,都不能解决问题;

2.偶然尝试从命令行工具中输入gcc -v 查看gcc的版本号,提示gcc版本号是之前安装的Cygwin的版本,并不是Qt的gcc,遂以为是两个gcc版本产生了冲突,所以就将Cygwin的卸载了,再次查看gcc版本,提示gcc为非法命令,然后怀疑在安装Qt时没有安装好,所以反复地卸载安装Mingw,可是前述问题依然没有得到解决;
.
3. 后来想到既然程序能编译运行,应该不存在gcc安装的问题,于是用everything搜索了电脑上的所有gcc所在的位置,发现Qt安装目录下的gcc.exe,g++.exe等都没有与windeployqt.exe存放在同一路径下,在我的电脑上,windeployqt.exe是在…\Qt\5.12.2\mingw73_32\bin路径下,而gcc.exe、g++.exe等是在…\Qt\Tools\mingw730_32\bin下面;

总结:如警告提示一般,因GCC、g++等不在规定的路径下,导致打包后的程序在没有安装Qt的电脑上无法加载.dll。
;

解决方法:

将对应版本的GCC installation、g++.exe拷贝到对应版本的windeployqt.exe所在的路径下,重新走一遍打包步骤。

你可能感兴趣的:(Qt,qt,mingw)