我的MC100开发板为项目组定制,基于飞思卡尔MX53 cpu,比较少见 系统用的ubuntu 9.10 32位虚拟机
其他开发板可以参考我的做法 很久之前写的了,可能有些错误,欢迎大家指正,咱们共同学习!!
1、获取源码包:
在:http://www.qtcn.org/bbs/read.php?tid=1075 (QTCN社区)下载 :
qt-x11-opensource-src-4.5.2.tar.gz(QT X11版本)
qt-embedded-linux-opensource-src-4.5.2.tar.gz(由它编译出QT X86及QT ARM版)
在CSDN下载:
tslib1.4.tar.gz(触摸屏校准库)
arm-linux-gcc-4.4.3.tar.gz(标准GCC编译器,不用虚拟机自带的FSL编译器,否则编译虽出错,因为这个问题调试了3天,WTF!!)
以下操作请在ROOT用户下操作
2、配置ubuntu编译环境
安装g++: sudo apt-get g++
安装编译X11用到的库:sudo apt-get libx11-dev libxext-dev
安装libxtst-dev: sudo aptitude install libxtst-dev 否则编译qvfb出错。
3.安装GCC编译器
解压arm-linux-gcc-4.4.3.tar.gz: sudo tar xvzf arm-linux-gcc-4.3.2.tgz
在/usr/local/下建立toolschain文件夹 (这个地址你可以自己设定,别弄错了就行)
将解压好的 arm-linux-gcc-4.3.2 文件夹中的4.4.3文件夹拷贝到/usr/local/toolschain 目录下。
最终文件结构:
设置环境变量:(重要!!)
在/etc/profile中添加:
export PATH=/usr/local/toolschain/4.4.3/bin:$PATH
export CC=arm-linux-gcc
不要用EXPORT命令!!!!否则重启后设置失效
之后在命令行中输入
arm-linux-gcc -v
如果显示 :
Target: arm-none-linux-gnueabi 和
gcc version 4.4.3 (ctng-1.6.1)
安装完毕,重新启动Linux。
4、编译及安装qt-x11-opensource-src-4.5.2
qt-x11版本可以产生Qt开发工具,如designer、qvfb,嵌入式的开发有了qvfb,就可以不需要实际的开发板,也可以开发Qt应程序。
tar xjvf qt-x11-opensource-src-4.5.2.tar.bz2
cd qt-x11-opensource-src-4.5.2
./configure
make
make install
历经漫长的编译过程,默认安装在/usr/local/Trolltech/Qt-4.5.2下,编译完成后源程序不要删除,还有用。
5、编译配置QtEmbedded-4.5.2-x86版本(我项目组开发的是ARM版的QT,此步关系不大)
A、解压
root@hrixin-desktop:/work/qte# tar xjvf qt-embedded-linux-opensource-src-4.5.2.tar.bz2
root@hrixin-desktop:/work/qte# mv qt-embedded-linux-opensource-src-4.5.2 qt-embedded-linux-opensource-src-4.5.2-x86
root@hrixin-desktop:/work/qte# cd qt-embedded-linux-opensource-src-4.5.2-x86
B、配置编译:
./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.2-x86 -embedded x86 -qvfb
root@hrixin-desktop:/work/qte/qt-embedded-linux-opensource-src-4.5.2-x86# make
C、安装到/usr/local/Trolltech/QtEmbedded-4.5.2-x86目录下:
root@hrixin-desktop:/work/qte/qt-embedded-linux-opensource-src-4.5.2-x86# make install
D、在/etc/profile文件中输入以下内容:
export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.2-x86/
export PATH=/usr/local/Trolltech/QtEmbedded-4.5.2-x86/bin/:$PATH
export LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded4.5.2x86/lib/:$LD_LIBRARY_PATH
保存退出,注销下。
5、编译安装tslib1.4(极其重要,错误最多的地方!!!)
A、安装编译过程需用到的程序(一定要装!)
root@hrixin-desktop:/home/hrixin# apt-get install autoconf(或autoconf2.13)
root@hrixin-desktop:/home/hrixin# apt-get install automake
root@hrixin-desktop:/home/hrixin# apt-get install libtool
B、配置编译
root@hrixin-desktop:/work/qt# tar xzvf tslib-1.4.tar.gz
root@hrixin-desktop:/work/qt# cd tslib
生成./configure
root@hrixin-desktop:/work/qt/tslib# source autogen.sh
建立一个脚本文件,命名为a.sh,写入命令:
echo "ac_cv_func_malloc_0 _nonnull=yes">arm-none-linux-gnueabi.cache
./configure --host=arm-none-linux-gnueabi --cache-file=arm-none-linux-gnueabi.cache --enable-inputapi=no -prefix=/usr/local/tslib
如图:
保存退出,更改a.sh的权限:sudo chmod u+x a.sh
执行a.sh shell脚本 一定要盯着终端的输出,确保正常结束,不能有错误,再执行下一步,否则make后的库缺少好多东西,根本用不了。
配置完成后编译tslib:
root@hrixin-desktop:/work/qt/tslib# make
C、安装
root@hrixin-desktop:/work/qt/tslib# make install
安装后文件夹结构如下:
其中tslib文件夹:
确认无误后,恭喜你,编译安装成功了。哈哈哈
打包tslib: root@hrixin-desktop:/usr/local# tar -czvf tslib.tar.gz tslib
D、复制到板子文件系统/usr/local目录下解压
E、设置环境变量,校准触摸屏。
在开发板终端建立脚本文件,并执行:
export TSLIB_ROOT=/usr/local/tslib
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_FBDEVICE=/dev/fb0
export QWS_MOUSE_PROTO=Tslib:/dev/input/event0
在/usr/local/tslib/bin目录下执行校准触摸屏程序:
[root@FriendlyARM bin]# ./ts_calibrate
触摸屏上有显示,程序能运行,则移植成功!
6、编译安装QtEmbedded-4.5.2-arm版本(十分重要!!!核心在于此)
A、解压
root@hrixin-desktop:/work/qte# tar -xvzf qt-embedded-linux-opensource-src-4.5.2.tar.bz2
root@hrixin-desktop:/work/qte# mv qt-embedded-linux-opensource-src-4.5.2 qt-embedded-linux-opensource-src-4.5.2-arm
root@hrixin-desktop:/work/qte# cd qt-embedded-linux-opensource-src-4.5.2-arm
B、配置编译:
建立a.sh脚本文件,添加命令(这命令太长了,所以这么做。。。。你自己打也行 囧 ) :
./configure -prefix /usr/local/Trolltech/Qt-4.5.2-arm -embedded arm -no-qt3support -xplatform qws/linux-arm-g++ -no-webkit -qt-libtiff -qt-libmng -qt-mouse-pc -no-mouse-linuxtp -qt-mouse-tslib
-I /usr/local/tslib/include -L /usr/local/tslib/lib
红字部分指定了tslib库文件的位置,要跟我们的tslib安装目录相同,务必注意啊!!!
root@hrixin-desktop:/work/qte/qt-embedded-linux-opensource-src-4.5.2-arm# make(一定要盯着终端的输出,确保正常结束,不能有错误)
编译成功之后因为如图的文件数量及大小:
之后不用配置环境变量,直接进入eclipse,选择windows---preferences---Qt
将ARM版的QT编译器添加到eclipse中。
新建工程之后,右键“属性”,找到QT properitys,选择ARM的编译器来编译它:
如果出错,在: /etc/profile中添加:
export QTEDIR=/usr/local/Trolltech/Qt-4.5.2-arm
export PATH=$QTEDIR/bin/:$PATH
export LD_LIBRARY_PATH=$QTEDIR/lib/:$LD_LIBRARY_PATH
编译工程时生成的Makefile
应该程序输出的是arm版QT编译器的信息。
最后生成的可执行文件也应该是arm版的。
将可执行文件放到板子上运行,
比如:./qt1 -qws 红色参数一定要加
如果出现找不到库文件的情况只要将编译器lib文件夹中的库和连接文件拷到板子上的/usr/lib/文件夹下即可。(我们调试时出现过缺少libpng.so和libQtGui.so的情况)