标题:qt embedded 2.37 自己写的hello 交叉编译出错,大家帮帮忙,谢谢
作者:stillman
日期:2009-08-15 21:05
内容:
先说一下我的环境:
操作系统 :Fefora 8 (自带gcc 版本是4.12)
开发板:优龙FS2410
◆ tmake 1.11 或更高版本; (生成 Qt/Embedded 应用工程的 Makefile 文件)
◆ Qt/Embedded 2.3.7 (Qt/Embedded 安装包)
◆ Qt 2.3.2 for X11; (Qt 的 X11 版的安装包, 它将产生 x11 开发环境所需要的两个工具)
◆ GCC 3.2.3
◆ 交叉编译器 cross-3.3.2
下面是我的真实经历,也是我为什么选择GCC 3.2.3 的原因(有点长啊,我从自己博客复制过来的):
拿到板子后,兴奋不已,心想终于拿到你了,这下可以真枪实弹地实验一把了,可谁又料到噩梦是一个接着一个。一有时间我就按照FS2410使用手册,一步一步实验,前面的还好,都是一些理论知识,有一些可以暂时不理。
等到编译Linux内核的时候,第一个噩梦就开始了,我先说一下编译环境,操作系统是 Fedora 8,系统自带GCC 版本是4.1.2,在编译内核error一大筐,对一个刚接触linux的新手来说,真是一个很大的打击,因为我就想按照手册一步一步踏踏实实走下来,前面的问题不解决我不想看后面的东西,怎么办呢,身边也没有高手,虽然有错误提示,咱也看不懂啊,接下来就是半年的郁闷,真是没有心思再去碰它了。
也就是上周吧,带着沉重的心情再次打开上次出现问题的那一页,上网查查吧,说不定会有收获,果不其然,相同的问题还不少,有可以是编译器GCC版本太高的原因,我就想难道GCC不向前兼容,那就试试吧,我就下了一个GCC 3.4.3 ,装了一下,还真的编译通过了,那个高兴劲儿就别提了,真的,对于我来说,这就是解决了一个大问题。
我就高歌前进,终于看到QT开发这一章了,说实话,这才是我最终的目标。QT开发这第一步就是部署开发环境,安装TMAKE的时候还顺利,等到安装 Qt/Embedded 2.3.7,这第二个噩梦就开始了,还是错误一大筐,有了上次的经验我就直接上网查,网上说什么的都有,很有可能是编译器版本的问题,难道GCC 3.4.3还高,再说了,安装一个编译器也要半个多小时呢,唉,那有什么办法呢,试试看,我就装了一个GCC 3.3.1,果然通过了,就是GCC的原因,我就趁着招呼劲儿编译安装 Qt/X11 2.3.2,你猜怎么了,对了,又出问题了,心想学一点东西它怎么就那么难呢,不会又是GCC的问题吧,GOOGLE一通,判断有可能是GCC的问题,那就再安装一个低版本的吧,装个gcc-3.2.3,编译顺利通过,妈呀,终于通过了。
这就告一段落吧,通过上面的问题总结 ..
#1 [superyongzhe 08-15 21:19]
把makefile里面的CC=arm-linux-gcc改为CC=arm-linux-g++试一下,还有就是确认makefile里面含有正确的库路径。
#2 [stillman 08-15 21:33]
我试过了,还是同样的问题,
# echo $LD_LIBRARY_PATH
/usr/local/qt/arm-qt/qt/lib:/usr/local/qt/arm-qt/qt-x11/lib:/usr/local/qt/x86-qt/qt/lib:/usr/local/qt/x86-qt/qt-x11/lib:/usr/local/gcc-3.2.3/lib:
# echo $TMAKEPATH
/usr/local/qt/arm-qt/tmake/lib/qws/linux-arm-g++
路径看起来都正确啊,如上
#3 [superyongzhe 08-15 21:56]
还有就是你看看那个路径下是否真的有libqte.so,把Makfile里的
LIBS=$(SUBLIBS) -L/usr/local/arm/3.3.2/lib -L$(QTDIR)/lib -lm -lqte
改为
LIBS=$(SUBLIBS) -L/usr/local/arm/3.3.2/lib -L$(QTDIR)/lib -lm -lqt
试试,可能没有lqte,你自习看看库的路径里是否真的有那个库。
#4 [stillman 08-15 22:10]
首先非常感谢你关注,在/usr/local/qt/arm-qt/qt/lib有啊
#5 [superyongzhe 08-15 22:13]
还有一种办法就是把这个库的路径加在/etc/ld.so.conf文件中,然后执行ldconfig命令,这样也许可以解决问题。可以看下你那个库目录里的文件吗?