Qt构建及编译出错问题及解决方案
来源:互联网 发布:excel 数据连接 编辑:程序博客网 时间:2024/06/07 14:58
整个一下午都在为Qt中出现的构建及编译问题而纠结,终于发现了问题所在,故记录下来并阐述解决方法。
问题描述:
当笔者运行qtNetTest的qt widget项目时,一直报错:
Running steps for project qtNetTest...
Could not start process "F:\Qt_5.3\5.3\mingw482_32\bin\qmake.exe"
C:\ProjectFolder\qt_projects\qtNetTest\qtNetTest.pro -r -spec win32-g++
"CONFIG+=debug"
Error while building/deploying project qtNetTest (kit: Desktop Qt 5.3.0 MinGW 32bit)
When executing step 'qmake'
Elapsed time: 00:00.
问题剖析及解决方案:
刚开始,笔者一直以为是项目文件路径存在中文字符,当仔细思考及验证后,发现中文项目路径一般的报错信息为:
Running steps for project qtNetTest...
Starting process "F:\Qt_5.3\5.3\mingw482_32\bin\qmake.exe"
C:\程序\qt_projects\qtNetTest\qtNetTest.pro -r -spec win32-g++
"CONFIG+=debug"
Cannot find file : C:\程序\qt_projects\qtNetTest\qtNetTest.pro
Error while building/deploying project qtNetTest (kit: Desktop Qt 5.3.0 MinGW 32bit)
When executing step 'qmake'
Elapsed time: 00:00.
此种情况的报错与笔者所遇到的问题的不同就在于后者的报错信息中出现了”Cannot find file”信息,此种信息表示qmake程序无法找到.pro文件,导致此错误的原因即在于项目文件路径中有中文,而qmake无法识别中文(字符编码集的不同,当然通过修改qt的字符编码集是可以实现识别中文的),从而导致错误发生。
对于自己所遇到的报错问题,笔者发现错误发生的关键在于build directory(构建目录)的设定。
在发生错误时,
而正确的情况下,应该为:
我们需要将构建目录设置为项目文件夹所在目录。
当然,这里,对于构建目录还有两点说明(这两种情况下,程序均可以顺利通过构建和编译):
1、qmake不支持构建目录在源文件目录之下(不建议使用此种方法):
2、Shadow build(隐式构建):上面所述情况皆为隐式构建。
***显式构建,构建目录与工程目录相同(个人比较推荐此种构建方式,因为文件组织更加有条理,更加易于管理)。
小结
对于遇到的此问题,个人究其原因在于:当改变qt的工作目录时,由于文件是移动的过程,对于项目运行环境的文件改变并未随着文件移动而改变,因此,我们在移动项目文件夹后应该重新检查项目的构建和运行环境。当然,对于中文路径,依旧需要留意。
- Qt构建及编译出错问题及解决方案
- 编译QT的MySql驱动问题及解决方案
- vs2015编译gdal出错及解决方案
- vs2015编译gdal出错及解决方案
- 程序编译出错记录及解决方案
- gedit出错问题总结及解决方案
- DirectShow 出错及解决方案
- 码蚁QT之Win8下命令行编译helloworld问题及解决方案
- Android 5.0 Binder编译问题及解决方案
- STM32F10x烧些出错的问题及解决方案
- 记录github出错及解决方案
- ICE源代码编译出错及问题的解决
- 编译hive 出错 及修改
- MFC编译出错及解决
- 搭建QT环境时遇到的问题及解决方案
- Qt使用中遇到的问题及解决方案
- QT:常见错误及解决方案
- Mac OSX 上 Android Studio 编译使用 JAVA8 及 retrolambda 的项目出错解决方案
- Mac OS X 安装和配置 PAServer,调试Firemonkey程序
- LeetCode OJ算法题(五十九):Permutation Sequence
- ios--UITabBarController的基本用法3
- c#程序以管理员身份运行(三种办法)
- hdu 1565 方格取数(1)
- Qt构建及编译出错问题及解决方案
- Why my APNs push certificate did not work?
- 嵌入式 tasklet使用workqueue示例
- 一个可以自动生成静态库,自动安装程序的Makefile
- gcc常用命令
- ACdream区域赛指导赛之手速赛系列(4) A Bad Horse
- C语言思想14
- ubuntu 14.04 添加 CPU 温度 在面板标题栏上
- Android中使单选项列表框默认选中前次保存的值(即setSingleChoiceItems方法的使用)