参考:https://blog.csdn.net/lpp0900320123/article/details/24876159
系统环境:
主机操作系统:ubuntu14.04
主机编译器:gcc4.8.4
交叉编译器:arm-linux-gcc-4.8
一、前期准备工作
1、 由于开发板普遍使用的是arm开发体系结构,所以arm板开发首先涉及到的就是交叉编译工具的建立。交叉编译就是在一种平台上编译出能运行在体系结构不同的另一种平台上的程序。
要准备的安装包:gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux.tar.gz(交叉编译环境,一般情况下arm板相关公司会提供,具体版本根据实际arm板为准)
2、编译linux版本的qt需要使用qt源代码包:qt-everywhere-opensource-src-4.8.6.tar.gz
3、qt-creator-linux-x86-opensource-2.5.2.bin(能够在linux系统直接安装)
4、tslib-1.4.tar.gz(触摸屏校验工具)
二、环境搭建
1、交叉编译器
(1)将gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux.tar.gz复制到usr/local中
(2)在ubuntu终端输入tar vxzf gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux.tar.gz
(3)配置环境变量,在控制台输入 gedit /root/.bashrc,在最后一行输入
export PATH=/usr/local/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux/bin:$PATH
(4)重新打开一个终端,使配置能够成功生效,输入 arm-linux-gnueabihf-gcc -v,出现下述信息表示交叉编译器已经配置成功
2、安装触摸屏校验工具
(1)把tslib-1.4.tar.gz拷贝到Ubuntu,解压缩:tar vxzf tslib-1.4.tar.gz
(2)进入tslib目录:cd tslib
(3) #./autogen.sh
(4) #./configure --prefix=/usr/local/tslib --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
(5)make
(6)make intsall
上述步骤常出现的错误:
执行第三步,./autogen.sh时提示./autogen.sh: 4: autoreconf: not found
解决办法:sudo apt-get install autoconf automake libtool
如果没有其他错误,则在usr/local下生成tslib文件夹,这就是以后用作出arm板触摸屏校验的文件
3、安装QtCreator
qt-creator-linux-x86-opensource-2.5.2.bin 拷贝到Ubuntu系统中,在终端中把路径切换到qt-creator-linux-x86-opensource-2.5.2.bin所在的路径,运行命令:./qt-creator-linux-x86-opensource-2.5.2.bin 就会出现图形安装界面;安装顺序和window下qtcreator差不多,点击下一步即可安装成功。
注意:安装的版本要和你的操作系统相匹配,32位的系统下对应32位的应用程序。
4、编译Qt库源码
将qt-everywhere-opensource-src-4.8.6.tar.gz根据需求不同解压三份分别命名为qt-pc,qt-qvfb,qt-arm
4.1编译qt-pc版
进入qt-pc目录,执行如下操作:
#./configure
# make
# make install
编译过程中出现的问题:
出错:Basic XLibfunctionality test failed!
这个错误主要是因为,XLib库没有安装,所以在编译X11平台时,应该保证,以下命令正确执行:sudo apt-get install libx11-dev libxext-dev libxtst-dev
注意:可以使用 make confclean 命令 把以前的配置信息清除掉,然后再重新配置。
4.2编译qt-qvfb
进入qt-qvfb目录,执行如下操作:
# ./configure -embedded x86 -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb
# make
# make install
编译安装PC版中的 qvfb:
进入qt-pc/tools/qvfb/目录,执行如下操作:
#make
编译完毕,将qt-pc/bin目录下的qvfb文件复制到/usr/local/Trolltech/QtEmbedded-4.8.6/bin目录。
编译qvfb时,一般会出现很多错误,解决办法请见
https://blog.csdn.net/weixin_40385285/article/details/79760970
注:qvfb为模拟arm输出环境,可先在pc端进行qvfb测试,然后再拷贝到arm板上,运行结果相同
4.2编译qt-arm
进入qt-arm目录,执行如下操作:
sudo ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.8.6-arm -shared -release -opensource -little-endian -embedded arm -no-qt3support -lrt -xplatform qws/linux-arm-g++
一般情况下会出现错误,具体解决办法可参考下述网站:
https://blog.csdn.net/cyf15238622067/article/details/53542049
安装完成后,在/usr/local/Trolltech目录中有三个文件夹:Qt-4.8.6、QtEmbedded-4.8.6、QtEmbedded-4.8.6-arm。
现在qt编译工具有三个版本:
其中,Qt-4.8.6为桌面版本,可以直接运行qt程序,QtEmbedded-4.8.6为模拟arm板版本,需要借助qvfb才能成功运行,QtEmbedded-4.8.6-arm为arm版本,不能直接运行,可以构建,需要拷贝到arm板才能正常运行。
(1)qt-pc正常运行版本
(2)qt-qvfb模拟版本
注:qvfb版本运行前,需要先打开qvfb
之后再配置参数
然后才能正常运行
(3)qt-arm版本不能直接运行,只能拷贝到arm板上运行