平台:虚拟机:VMware Workstation
PC机操作系统:ubuntu12.04
编译环境:GCC,G++,arm-linux-gcc 4.4.1
qt-creator-linux-x86-opensource-2.7.0.bin
Qt libraries 4.8.4 for embedded Linux
大概理一下思路,对于PC机端:需要先编译tslib,主要用于生成触摸屏相关的库文件,方便QT调用,在编译Qt libraries 4.8.4 for embedded Linux,用于生产库QT库文件,对于Qt libraries 4.8.4 for embedded Linux的编译,有两种方式,一种是编译在PC机下使用,一种是在arm下使用,编译Qt libraries 4.8.4 for embedded Linux后会生成一个QT下的编译环境qmake。在成功编译完Qt libraries 4.8.4 for embedded Linux后,生产的QT库和qmake备用,arm编译下的QT库通过NFS方式拷贝到开发板上备用。接下来详细说明每一个步骤:
一、 Tslib 移植
获取 tslib-1.4.tar.gz
1、安装必要的库和环境(PC机执行)
#sudo apt-get install autoconf
#sudo apt-get install libtool
#sudo apt-get install automake
2、解压
tar xvzf tslib-1.4.tar.gz
3、进入tslib目录
#cd tslib
4、设置环境变量和交差编译器路径
#export PATH=/usr/local/arm/4.4.1/bin:$PATH
#export TOOLCHAIN=/usr/local/arm/4.4.1
#export TB_CC_PREFIX=arm-linux-
#export PKG_CONFIG_PREFIX=$TOOLCHAIN/arm-linux
(这是我的交差编译器的安装位置,请根据实际情况指定交差编译器位置)
5、 执行脚本
#./autogen.sh
#echo "ac_cv_func_malloc_0_nunnull=yes" > arm-linux.cache
6、配置
#./configure –host=arm-linux /
--cache-file=arm-linux.cache /
--enable-inputapi=no /
PLUGIN_DIR=/usr/local/arm/stlib/plugins /
–prefix=/usr/local/arm/tslib/build /
--host=arm-linux /
--cache-file=arm-linux.cache 2>&1 | tee conf_log
以上的设置 ”/“为空格不用换行,使用的时候,不要复制使用,怕有不可识别字符导致配置错误
在--prefix指定的路径/usr/local/arm/tslib/build 会生成编译好的tslib文件
7、编译
#make 2>&1 | tee make_log
#make install
编译完成,可查看/usr/local/arm/tslib生成的tslib文件
二、Qt4.8.4 移植
1、复制qt-everywhere-opensource-src-4.8.4.tar.gz 库文件在ubuntu12.04下面的任何文件夹
2、安装需要的库
#Sudo apt-get install libxext-dev
3、解压qt-everywhere-opensource-src-4.8.4.tar.gz
#tar xzvf qt-everywhere-opensource-src-4.8.4.tar.gz
4、进入qt-everywhere-opensource-src-4.8.4
#cd qt-everywhere-opensource-src-4.8.4
5 、编译
a、编译到PC端使用的库,虽然我们在使用过程中不一定会使用,但是,我们可以编译出来方便调试
1)、配置
#.configure -prefix /usr/local/qt-x11/qtlib(指定编译完成的生成路径,路径请先建立)
2)、编译
#make (这个过程很久,大概在2个半小时后左右,需要等待,可以去玩一会儿)
#make install
完成编译以后,成功编译的话可以在生成路径/usr/local/qt-x11/qtlib 看到编译好的库文件,在qtlib/bin下面能够看到我们要使用的qmake工具
b、编译ARM版本下的库文件,如果进行了a步骤(编译到PC端使用的库)请执行清除配置命令
#make confclean
1)、修改文件 qmake.conf
#cd qt-everywhere-opensource-src-4.8.4/mkspecs/qws/linux-arm-g++
#sudo qmake.conf
打开这个配置文件,主要是设置 TSLIB_INCDIR 和 TSLIB_LIBDIR路径,路径设为你安装的tslib路径(编译tslib生成文件存放路径) ,下面是qmake.conf 文件内容,加入TSLIB_INCDIR 和 TSLIB_LIBDIR即可
2)、在qt-everywhere-opensource-src-4.8.4目录下新建一个脚本文件Build_qt.sh
#./configure -h
#sudo gedit Build_qt.sh
在脚本文件下输入如下内容:
保存关闭, -prefix /usr/local/qt-arm/qtlib为生成的arm下执行的库文件的路径。
3)、修改脚本文件 Build_qt.sh权限
#chmod 777 Build_qt.sh
4)、执行脚本文件
#./Build_qt.sh
该过程会比较久,可以去喝口水,玩一会儿在回来
5)、编译
#make
#make install
完成编译后,会在 -prefix /usr/local/qt-arm的路径下看到编译好的库文件 qtlib
在 /usr/local/qt-arm/qtlib/bin下能够看到qmake文件。做完以上步骤,我们已经安装完了qt库文件和qmake。
三、安装 qt-creator-linux-x86-opensource-2.7.0.bin,这个是在ubuntu下面最QT GUI的编程软件。安装完了qt-creator-linux-x86-opensource-2.7.0.bin,打开软件进行配置。
1 、打开QT
点击工具栏的tools-->options
然后选择Build&Run
先选择Compilers 用于指定编译器,点击Add-GCC
在Name里面输入:linux-arm-g++,点击Browes,指定arm-none-linux-gnueabi-g++的路径,这个是你安装的arm-linux交差编译器的/bin文件夹下面的一个文件:arm-none-linux-gnueabi-g++
然后选择Qt Versions指定qmake路径,点击Add,Versions name:Qt 4.8.4(qtarm),点击Browse,指定qmake的路径,这个路径是你编译好qt-everywhere-opensource-src-4.8.4的生成的库文件的路径,在/bin下面有qmake。
在点击Kits,照如下图设置。就完成了整个设置过程。
编译好QT软件后, 点击右边的Projects可以查看生成文件的路径。把生成文件拷到开发板上。
如下操作是在开发板上执行,
1、从PC机拷贝文件,1、库文件,tslib 和qtlib/lib qt生成的执行文件
2、环境变量的设置
export set QT_QWS_FONTDIR=/usr/local/qtlib/lib/fonts
3、运行 qt执行文件
#./test -qws
见证奇迹的时刻到了。呵呵。