之前项目中使用的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