标题:各种工具交叉编译qte均失败
作者:qlong79
日期:2006-04-07 22:25
内容:
宿主机为red hat9.0,linux-2.4.20-8
已经在宿主机上成功编译自己的程序
现在交叉编译qte2.3.7
1 使用cross2.95.3,解压后设置PATH=/toolchain/2.95.3/bin:$PATH
修改configs下linux-arm开头的为arm-linux
然后用./configure -xplatform arm-linux-g++ -qconfig local -qvfb -depths 4,8,16,32 -thread编译
提示:
arm-linux-g++: installation problem, cannot exec `cpp0': ?????????
make[3]: *** Error 1
make[3]: Leaving directory `/devel/qte237target/src'
make[2]: *** Error 2
make[2]: Leaving directory `/devel/qte237target'
make[1]: *** Error 2
make[1]: Leaving directory `/devel/qte237target'
make: *** Error 2
改用cross 3.3.2版本,依上编译错误依旧
2 改用armv41-unknown-linux编译,错误依旧
3 由于目标板有编译运行的qtopia,从中拷贝qt2.3.7/lib中所有文件至宿主机qte237/lib中
tmake后修改makefile 直接编译源程序,提示:
# tmake -o Makefile t5.pro
# make
arm-linux-g++-o t5 sample.o svm.o main.o moc_sample.o-L/devel/toolchain/3.3.2/lib -L/devel/qte237target/lib -lm -lqte-mt
ld: unrecognised emulation mode: armelf_linux
Supported emulations: elf_i386 i386linux
3种方式都不能成功,请指教该如何解决?
#1 [hunhunzi 04-07 23:56]
改为:./configure -xplatform linux-arm-g++ -qconfig local -qvfb -depths 4,8,16,32 -thread
试吧.
#2 [qlong79 04-08 10:09]
谢谢
昨天用armv41的时候configs文件夹里有的文件没改过来
现在已经改好了,编译提示:
make[3]: Entering directory `/devel/qte237target/src'
echo '#include "kernel/qt.h"' >allmoc.cpp
armv41-unknown-linux-g++ -D_REENTRANT -DQT_THREAD_SUPPORT -E -DQT_MOC_CPP -I/devel/qte237target/include-pipe -DQWS -fno-
exceptions -fno-rtti -g -Wall -W -fPIC -DQT_NO_IMAGEIO_MNG -DQT_NO_QWS_VOODOO3 -DQT_NO_QWS_MACH64 -DQT_NO_QWS_MATROX -
DQT_NO_QWS_VNC -DQT_NO_QWS_VGA_16 -DQT_NO_QWS_DEPTH_24 -DQT_BUILTIN_GIF_READER=0 -DQT_NO_IMAGEIO_JPEG -DQT_NO_IMAGEIO_MNG -
DQT_NO_SM_SUPPORT-I/devel/qte237target/src/3rdparty/zlib -I/devel/qte237target/src/3rdparty/libpng -I3rdparty/freetype/src
-I3rdparty/freetype/include -I3rdparty/freetype/builds/unix -I3rdparty/kernel -I3rdparty/tools >allmoc.h allmoc.cpp
/bin/sh: line 1: armv41-unknown-linux-g++: command not found
make[3]: *** Error 127
make[3]: Leaving directory `/devel/qte237target/src'
make[2]: *** Error 2
make[2]: Leaving directory `/devel/qte237target'
make[1]: *** Error 2
make[1]: Leaving directory `/devel/qte237target'
make: *** Error 2
另:linux-arm-g++我也试了,提示错误如下:
make[3]: Entering directory `/devel/qte237target/src'
echo '#include "kernel/qt.h"' >allmoc.cpp
armv41-unknown-linux-g++ -D_REENTRANT -DQT_THREAD_SUPPORT -E -DQT_MOC_CPP -I/devel/qte237target/include-pipe -DQWS -fno-
exceptions -fno-rtti -g -Wall -W -fPIC -DQT_NO_IMAGEIO_MNG -DQT_NO_QWS_VOODOO3 -DQT_NO_QWS_MACH64 -DQT_NO_QWS_MATROX -
DQT_NO_QWS_VNC -DQT_NO_QWS_VGA_16 -DQT_NO_QWS_DEPTH_24 -DQT_BUILTIN_GIF_READER=0 -DQT_NO_IMAGEIO_JPEG -DQT_NO_IMAGEIO_MNG -
DQT_NO_SM_SUPPORT-I/devel/qte237target/src/3rdparty/zlib -I/devel/qte237target/src/3rdparty/libpng -I3rdparty/freetype/src
-I3rdparty/freetype/include -I3rdparty/freetype/builds/unix -I3rdparty/kernel -I3rdparty/tools >allmoc.h allmoc.cpp
/bin/sh: line 1: armv41-unknown-linux-g++: command not fou ..
#3 [hunhunzi 04-08 10:31]
armv41-unknown-linux-g++ ?????
你是怎么configure的,这个编译器明显没有啊,你试过我上面的configure吗?
我建议你用一下简单的configure试一下:./configure -xplatform linux-arm-g++
先别选择太多编译。
goodluck!
#4 [d2fred 12-01 13:19]
我是新手,但提供一种我试过的方法参考一下。
我开始也是试过各种交叉编译器,都不成功,琢磨好久,郁闷至死。
后来我发现把arm交叉编译器放到/usr/local/arm下就好了,所有问题解决。 原来我也设置了各种环境变量,如:export PATH=/a/2.95.3/bin:$PATH,以为设了变量,就可以把2.95.3放到/a下,其实不行, 最起码我试验是不行的。
#5 [shiroki 12-04 15:38]
看来看去还是toolchain有问题,你自己写个简单的helloworld程序,看看用你的toolchain可以正确编译吗