考虑到跨平台和VS编译器安装环境不便等问题,需要将Qt工程从vs编译转移到mingw,遇到无法运行和调试的问题。笔者网上进行了相关问题的搜索,但和mingw相关的回答很少,自己专研了一下,目前已完美解决。
解决方法如下。
假设执行程序为demo.exe,路径为D:\debug\demo.exe
- 无法运行问题解决:替换成mingw编译通过后,直接运行程序失败(应该是vs和mingw在某些语法规则上不兼容),无任何提示,且无法执行调试。1)通过控制台窗口进入mingw目录(C:\Qt\Qt5.12.2\5.12.2\mingw73_32\bin),执行windeployqt.exe D:\debug\demo.exe命令将程序依赖的qt运行平台库添加到执行程序目录。2)双击demo.exe图标运行程序,按照提示,将缺失的库拷贝到执行程序目录下。3)双击demo.exe图标运行程序,如果可以正常运行程序,跳过此步骤。如果程序直接崩溃无任何提示,可采用mingw gdb进行程序调试,通过控制台cmd窗口,进入gdb目录(C:\Qt\Qt5.12.2\Tools\mingw730_32\bin),运行gdb D:\debug\demo.exe,进入gdb调试后,输入r执行程序。通过调试断点提示判断出错位置,修改源代码,直到可直接运行程序。
- 无法调试问题解决:解决了程序运行问题,如果无法在Qt中启动程序调试,最有可能的原因是C:\Qt\Qt5.12.2\Tools\mingw730_32目录下的文件没有被正确安装,可卸载重新安装或从可以正常调试程序的计算机中拷贝此目录内容进行覆盖。
至此,完美解决Qt mingw编译、运行、调试问题。