qt交叉编译,为什么make指令调用的是g++,而不是arm-linux-g++ ?

按照文档,交叉编译工具也装了,Qt嵌入版也装了,然后写了个示例程序,依次运行
$ /usr/local/Trolltech/QtEmbedded-4.8.5/bin/qmake -project
$ /usr/local/Trolltech/QtEmbedded-4.8.5/bin/qmake
$ make 来进行交叉编译,想运行在ARM板上。
编译过程倒是没报错,但发现make调用的是g++:
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/QtEmbedded-4.8.5/mkspecs/qws/linux-x86-g++ -I. -I/usr/local/Trolltech/QtEmbedded-4.8.5/include/QtCore -I/usr/local/Trolltech/QtEmbedded-4.8.5/include/QtNetwork -I/usr/local/Trolltech/QtEmbedded-4.8.5/include/QtGui -I/usr/local/Trolltech/QtEmbedded-4.8.5/include -I. -I. -o hello.o hello.cpp
g++ -Wl,-O1 -Wl,-rpath,/usr/local/Trolltech/QtEmbedded-4.8.5/lib -o arm hello.o -L/usr/local/Trolltech/QtEmbedded-4.8.5/lib -lQtGui -L/usr/local/Trolltech/QtEmbedded-4.8.5/lib -lQtNetwork -lQtCore -lpthread
这肯定不对,照理讲这个时候应该是arm-linux-g++,很明显,是Makefile文件出错了,怎么纠正咧?

你找下,是不是在哪个Makefile脚本或类似config.mk的脚本里有个变量,变量值为编译器名字的。
它可能是这样的:
CROSS_COMPILE := arm-linux-
HOSTCXX = g++
这两个名字拼起来才是交叉编译器的名字,如果只用了HOSTCXX或者CROSS_COMPILE为空,它就用的g++了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-24
就像是楼上说的,可能前面设置了个默认的环境变量,前面的默认的就是arm-linux-。只需要加上后面的GCC或者G++就可以了。
相似回答