您的位置 首页 5G

arm-linux-qt环境的树立

Arm-Linux嵌入式QT/E环境的建立(qt/e3.x系列)QT/E3.x系列比QT/E2.x系列有非常大的改进,大大提高了开发进度,不再使用tmake,安装也更…

Arm-Linux嵌入式QT/E环境的树立(qt/e 3.x系列)

QT/E 3.x系列比QT/E 2.x系列有非常大的改善,大大提高了开发进度,不再运用tmake,装置也更简略。但现在在网上关于QT/E 3.x系列的介绍仍是比较少,
所以本文介绍一下QT/E 3.x系列的装置。
一、树立arm穿插编译东西链
在装置QT/E之前,应保证arm-linux穿插编译东西链现已树立,假如还没有能够参阅以下进程树立。
1、下载穿插编译东西cross-2.95.3.tar.bz2(或其他版别如:cross-3.4.4.tar.bz2),这是现已制作好的arm穿插编译东西链,只需解压及建交环境变量即可运用。
2、把文件cross-2.95.3.tar.bz2仿制到一个文件夹,这儿我用:/usr/local/arm这个目录。 留意后边树立环境变量时要与之对应。
3、解压 tar -xjvf cross-2.95.3.tar.bz2
4、树立环境变量仿制内容到剪贴板代码:
export PATH=/usr/local/arm/2.95.3/bin:$PATH或许也能够写进文件 ~/.bashrc中,这样就不必每次开机都export啦。仿制内容到剪贴板代码:
vi ~/.bashrc
在后边加上 export PATH=/usr/local/arm/2.95.3/bin:$PATH到此arm-linux穿插编译东西链就现已建好了。
二、编译QT
1、QT/E自在版可到官网ftp下载。网址是:ftp://ftp.trolltech.com/qt/source/。可自己挑选一个版别下载,个人认为QT/E 3.x系列比较好用,
不过QT/E 2.x系列在网上的材料比较多。但主张不必qt/e 3.3.x 的版别,由于在自己开发的进程傍边试用过qt/e 3.3.4和qt/e3.3.8,发现它们在ARM开发板上占
CPU的资源特高,一向占cpu 98%左右,现在我还没找到原因,不知道有没有哪位朋友也遇到这个问题。引荐用qt/e 3.1.0版别,我正在用,没遇到什么问题。
(注:问题现已得到解决,本来是键盘接口没做好,等有空与咱们共享一下移植键盘接口的进程)
2、在这儿,自己假定用的是 qt-embedded-free-3.1.0.tar.bz2
3、把文件qt-embedded-free-3.1.0.tar.bz2 仿制到一个文件夹,这儿我用:/usr/local/arm这个目录。 留意后边树立环境变量时要与之对应。
4、解压 tar -xjvf qt-embedded-free-3.1.0.tar.bz2
把解压后的文件夹qt-embedded-free-3.1.0改为qte。(能够不改,这儿是为了便利,留意后边树立环境变量时要与之对应)
mv qt-embedded-free-3.1.0 qte
5、树立环境变量
vi ~/.bashrc
在后边加上仿制内容到剪贴板代码:
export QTDIR=/usr/local/arm/qte
export QTEDIR=$QTDIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH(请从头登陆,以使得环境变量收效)
6、装备QT
进入QT/E目录: cd $QTDIR
输入: ./configure -embedded arm -thread -no-cups -qvfb -depths 4,8,16,32

上述选项: -embedded arm 指方针渠道为arm; -thread 表明支持qt线程,自己开发傍边用到; -qvfb 表明支持虚拟缓冲帧东西qvfb;
-depths 4,8,16,32 表明支持4,8,16,32 位的显现色彩深度。还有许多选项就不一一列举,请检查 ./configure -help。
此外还有一个选项我没用的是 -qconfig local,你能够把一些开关变量写到一个文件qconfig-local.h 中,并把它放到$QTDIR/src/tools下。
可参阅这个目录下的qconfig-small.h、qconfig-medium.h 、qconfig-large.h等文件,直接运用它们也行,如: -qconfig small 。经过这些开关变量,
能够把一些开发傍边用不着的构件去掉,削减qt库的巨细。这儿要对QT比较娴熟,初学者可先不睬。

(自己在家里编译到这儿曾呈现编译 $QTDIR/include/qvaluestack.h 这个文件的时分犯错,后来把qt3.3.8对应的文件仿制过来掩盖便经过了,
估量是与gcc的版别不兼容的问题,我在公司里没呈现过这种问题)
7、编译
make sub-src // 指定按精简方法编译开发包,也就是说有些Qt 类未被编
译。
8、测验
至此编译作业完结,最终测验一下是否能正常运用。咱们能够用QT自带的比如来测验,如:
cd $QTDIR/examples/aclock //或你自己新建一个QT工程也行
make clean //把本来的清掉
rm *.pro Makefile //删掉,从头树立工程文件
qmake -project
qmake -spec $QTDIR/mkspecs/qws/linux-arm-g++ -o Makefile
-spec指定方针板的装备文件,这儿我做的是linux arm渠道,留意在这儿,$QTDIR/mkspecs/qws/linux-arm-g++ 它不是编译器,是一个装备文件,
而编译时用的编译器是咱们在第一步树立的arm穿插编译东西链里边的编译器。
make
假如没犯错就表明你的QT/E环境现已成功树立。假如提示说cannot find -lqte, 那么你试一下修正Makefile文件,找到-lqte ,把它改为-lqte-mt
再make一次一般就行了。这是由于假如用到QT线程或其它一些原因,它生成的库不再是libqte.so.3.1.0,而是libqte-mt.so.3.1.0,所以它便找不到了。
三、移植到开发板(以下都是在方针机环境下)
1、新建一个目录,如:/qt/lib。进入此目录 cd /qt/lib
2、经过 ftp 把上面生成的qt库文件libqte-mt.so.3.1.0下载到开发板/qt/lib/目录下。(留意:不要用wget 下载,会损坏库文件,
然后呈现 ld.so: dynamic-link.h: 62: elf_get_dynamic_info: Assertion `! “bad dynamic tag”
failed!.这种过错)
3、创立qt库衔接:
ln -s libqte-mt.so.3.1.0 libqte-mt.so
ln -s libqte-mt.so.3.1.0 libqte-mt.so.3
ln -s libqte-mt.so.3.1.0 libqte-mt.so.3.1
4、树立环境变量
vi ~/.bashrc
在后边加上仿制内容到剪贴板代码:
export QTDIR=/qt
export QTEDIR=$QTDIR
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH4、到此方针板的环境现已建好。现在能够把上面的比如aclock下载到方针板上试一下能不能跑起来!
在开发板操控台下输入: ./aclock -qws
假如能跑起来可是键盘用不了,那是正常的状况,由于键盘、鼠标等设备的接口还没加进QT/E的原因,而这个不是一两句话能说清的,所以留到今后再别的弥补!
弥补一点:假如有相似这样的提示: “./aclock: error while loading shared libraries: libstdc++.so.6: cannot load shared object file: No such file or directory.” 你能够从咱们第一步树立的arm穿插编译东西链里的/usr/local/arm/2.95.3/arm-linux/lib/目录下找到相应的库文件下载到开发板的 /lib 目录下即可。–

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/5g/274931.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部