Qtcreator与多个交叉编译器问题

之前项目中使用的gcc为4.4.7版本,后来因为C++11的原因升级到了gcc4.8.3,但是在设置了Qtcreator中的构建套件后,重新编译项目发现还是有错误:

这个错误感觉不像是项目出问题了,而更像是编译器的问题,去qmake后生成的Makefile文件中看,果然虽然在Kit中指定了gcc4.8.3,但是Makefile中的CC和CXX还是gcc4.4.7:

这个问题会出在哪呢?难道是因为没把4.8.3的路径加入环境变量中吗?尝试了一下,还是不管用,回到qtcreator的Build & Run中,看看各个项有什么区别:交叉编译器设置了两个,Qt Versions只有一个,Kits有两个,两个交叉编译器共用一个Qt Versions,如果有差异也就只有这一项了,打开Qt Versions的Details看,发现mkspec为linux-mips-g++,而这个linux-mips-g++是我使用4.4.7版本编译qt源码时指定的,也就是说我gcc4.8.3的Kit配置的是gcc4.4.7版本编译的Qt版本,而编译项目时默认编译器就自动指定了4.4.7版本的gcc(我猜的)。

而如何改到4.8.3版本呢?可以再pro文件中重新指定一次:

QMAKE_CC = /home/lpf/gcc-4.8.3-d197-n64-loongson/usr/bin/mips64el-redhat-linux-gcc
QMAKE_CXX = /home/lpf/gcc-4.8.3-d197-n64-loongson/usr/bin/mips64el-redhat-linux-g++

这样Makefile中的CC和CXX就是你要的了,但是Makefile中还是会出现4.4.7的身影,如:

Qtcreator与多个交叉编译器问题_第1张图片

这些项好像并不影响项目的编译,可以正常编译通过,就是还没移植测试过,不知道会不会有什么问题...

要想不在pro文件中手动的指定CC和CXX,那就要麻烦一点了,需要使用4.8.3版本的gcc重新编译qt源码,然后在Kit套件中重新指定一份配置,这样就有两个交叉编译器,两个Qt Version,同样也就有两个不同配置的Kits了....

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