• 9035阅读
  • 6回复

各种工具交叉编译qte均失败 [复制链接]

上一主题 下一主题
离线qlong79
 
只看楼主 倒序阅读 楼主  发表于: 2006-04-07
宿主机为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]: *** [allmoc.cpp] Error 1
make[3]: Leaving directory `/devel/qte237target/src'
make[2]: *** [src-mt] Error 2
make[2]: Leaving directory `/devel/qte237target'
make[1]: *** [src-mt] Error 2
make[1]: Leaving directory `/devel/qte237target'
make: *** [init] 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
[root@fmj lixtargetmt]# 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种方式都不能成功,请指教该如何解决?
[ 此贴被XChinux在2006-04-07 22:52重新编辑 ]
离线hunhunzi

只看该作者 1楼 发表于: 2006-04-07
改为:./configure -xplatform linux-arm-g++ -qconfig local -qvfb -depths 4,8,16,32 -thread
试吧.
华曼科技网
www.whaman.com
->BBS
技术论坛提供各种嵌入式系统学习资料下载!
欢迎您到来!
离线qlong79
只看该作者 2楼 发表于: 2006-04-08
谢谢
昨天用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]: *** [allmoc.cpp] Error 127
make[3]: Leaving directory `/devel/qte237target/src'
make[2]: *** [src-mt] Error 2
make[2]: Leaving directory `/devel/qte237target'
make[1]: *** [src-mt] Error 2
make[1]: Leaving directory `/devel/qte237target'
make: *** [init] 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 found
make[3]: *** [allmoc.cpp] Error 127
make[3]: Leaving directory `/devel/qte237target/src'
make[2]: *** [src-mt] Error 2
make[2]: Leaving directory `/devel/qte237target'
make[1]: *** [src-mt] Error 2
make[1]: Leaving directory `/devel/qte237target'
make: *** [init] Error 2
make[3]: Entering directory `/devel/qte237target/src'
echo '#include "kernel/qt.h"' >allmoc.cpp arm-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
In file included from allmoc.cpp:1:
kernel/qt.h:23:19: stdio.h: 没有那个文件或目录
In file included from kernel/qt.h:29,          
from allmoc.cpp:1: /devel/qte237target/include/qcstring.h:50:20: string.h: 没有那个文件或目录
In file included from kernel/qt.h:132,  
from allmoc.cpp:1:/devel/qte237target/include/qsharedmemory.h:53:23: sys/types.h: 没有那个文件或目录
/devel/qte237target/include/qsharedmemory.h:54:21: sys/ipc.h: 没有那个文件或目录
In file included from kernel/qt.h:285,           from allmoc.cpp:1:/devel/qte237target/include/qgfxraster_qws.h:50:20:

unistd.h: 没有那个文件或目录
/devel/qte237target/include/qgfxraster_qws.h:51:19: stdio.h: 没有那个文件或目录
/devel/qte237target/include/qgfxraster_qws.h:52:20: stdlib.h: 没有那个文件或目录
/devel/qte237target/include/qgfxraster_qws.h:53:18: math.h: 没有那个文件或目录
make[3]: *** [allmoc.cpp] Error 1
make[3]: Leaving directory `/devel/qte237target/src'
make[2]: *** [src-mt] Error 2
make[2]: Leaving directory `/devel/qte237target'
make[1]: *** [src-mt] Error 2
make[1]: Leaving directory `/devel/qte237target'
make: *** [init] Error 2

似乎是找不到各种标准库的文件
离线hunhunzi

只看该作者 3楼 发表于: 2006-04-08
armv41-unknown-linux-g++ ?????
你是怎么configure的,这个编译器明显没有啊,你试过我上面的configure吗?
我建议你用一下简单的configure试一下:./configure -xplatform linux-arm-g++
先别选择太多编译。
goodluck!
华曼科技网
www.whaman.com
->BBS
技术论坛提供各种嵌入式系统学习资料下载!
欢迎您到来!
离线d2fred
只看该作者 4楼 发表于: 2006-12-01
我是新手,但提供一种我试过的方法参考一下。
我开始也是试过各种交叉编译器,都不成功,琢磨好久,郁闷至死。
后来我发现把arm交叉编译器放到/usr/local/arm下就好了,所有问题解决。 原来我也设置了各种环境变量,如:export PATH=/a/2.95.3/bin:$PATH,以为设了变量,就可以把2.95.3放到/a下,其实不行, 最起码我试验是不行的。
离线shiroki

只看该作者 5楼 发表于: 2006-12-04
看来看去还是toolchain有问题,你自己写个简单的helloworld程序,看看用你的toolchain可以正确编译吗
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线june2004

只看该作者 6楼 发表于: 2010-04-07
说一下我的看法
arm-linux-g++是个文件,一般在config时加入-xplatform qws/arm-linux-g++这表示让make时到mkspec下的qws下的arm-linux-g++下执行qmake.conf文件,而你设定的交叉编译工具也在这个文件中指定.
快速回复
限100 字节
 
上一个 下一个