Ubuntu 下 Tiny6410 嵌入式 Qt 开发环境的搭建
首先要准备好交叉编译所需要的软件包:
(1)arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz(交叉编译环境)
(2)qt-everywhere-opensource-src-4.8.5.tar.gz(Qt 的源码)
(3)qt-creator-linux-x86_64-opensource-2.5.2.bin(我的系统是 64 位,所
以选择 x86_64)
(4)tslib-1.4.tar.gz(触摸屏校验工具)

2.环境的搭建
2.1 系统环境
主机操作系统:ubuntu14.04
主机编译器:gcc4.8.4,
交叉编译器:arm-linux-gcc-4.5.1

2.2 安装交叉编译器
(1)首先以 root 用户登入
(2)复制 arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz 到 tmp 文件夹里
(3)解压 tar xvzf arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz -C /
注意:以上命令必须要有-C 而且是大写的后边有个空格也要注意
(4)配置下编译环境路径 在控制台下输入 vim .bashrc,文件末尾加上
export PATH=/opt/FriendlyARM/toolschain/4.5.1/bin:$PATH

Ubuntu下Tiny6410 嵌入式 Qt 开发环境的搭建_Qt

 

(5)输入:source .bashrc

(6)输入:arm-linux-gcc -v 如果出现下面界面,就代表交叉编译器安装成功,会输出 gcc 的版本号;

Ubuntu下Tiny6410 嵌入式 Qt 开发环境的搭建_Qt_02

 

2.3 安装触摸屏校验工具
把 tslib-1.4.tar.gz 放到一个目录下,比如/opt 目录下。接着执行命令如下:
#tar zxvf tslib-1.4.tar.gz
执行命令 cd tslib,进入 tslib 当前目录,接着执行命令如下:
#./autogen.sh
然后接着执行配置命令:
#./configure --prefix=/usr/local/tslib --host=arm-linux
ac_cv_func_malloc_0_nonnull=yes
最后执行编译命令和安装命令如下:
1.make
2.make install
如果以上步骤没错,则可以在/usr/local/tslib 下出现我们需要的库文件,这些库文件我们移植时会用到。
编译期间出现的错误:./autogen.sh: 4: autoreconf: not found
解决办法:sudo apt-get install autoconf automake libtool

2.4 安装 QtCreator
qt-creator-linux-x86_64-opensource-2.5.2.bin 拷贝到 Linux 系统中,在终端中把路径切换到 qt-creator-linux-x86_64-opensource-2.5.2.bin 所在的路径,运行命令:./qt-creator-linux-x86_64-opensource-2.5.2.bin 就会出现图形安装界面;下面的安装步骤就和我们在 windows 下安装软件差不多。
注意:下的版本要和你的操作系统相匹配,32 位的系统下对应 32 位的应用程序;

2.5 编译 Qt 库源码
2.5.1 解压
将源码 qt-everywhere-opensource-src-4.8.5.tar.gz 进行解压,并复制两份到/usr/local 目录下,并分别命名为 qt-pc,qt-arm。

2.5.2 编译 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 命令 把以前的配置信息清除掉,然后再重新配置。

2.5.3 编译 ARM 版
进入 qt-arm 目录,执行如下操作:
#vim /usr/local/qt-arm/qt-everywhere-opensource-src-4.8.5/mkspecs/qws/linux-arm-g++/ qmake.conf

Ubuntu下Tiny6410 嵌入式 Qt 开发环境的搭建_g++_03

 

 

#./configure -prefix /usr/local/Trolltech/QtEmbedded-4.8.5-arm
-opensource -confirm-license -release -shared -embedded arm -xplatform qws/linux-arm-g++ -depths 16,18,24 -fast -optimized-qmake -pch -qt-sql-sqlite -qt-libjpeg -qt-zlib -qt-libpng -qt-freetype
-little-endian -host-little-endian -no-qt3support -no-libtiff -no-libmng -no-opengl -no-mmx -no-sse -no-sse2 -no-3dnow -no-openssl -no-webkit -no-qvfb -no-phonon -no-nis -no-opengl -no-cups -no-glib
-no-xcursor -no-xfixes -no-xrandr -no-xrender -no-pch -no-separate-debug-info -nomake examples -nomake tools -nomake docs -qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib
#make
#make install
安装完成后,在/usr/local/Trolltech 目录中有两个个文件夹:Qt-4.8.5、QtEmbedded-4.8.5-arm。

QtCreator 编译前的配置

打开 QtCreator ,工具---->选项—>构建和运行 进行设置,在 Qt 版本菜单下,手动设置选择 qmake 路径。

Ubuntu下Tiny6410 嵌入式 Qt 开发环境的搭建_Qt_04


如果此步骤添加的Qt version出现红色感叹号的情况,就在Tool Chains下面添加新的工具。

构建项目的时候

Ubuntu下Tiny6410 嵌入式 Qt 开发环境的搭建_g++_05


Ubuntu下Tiny6410 嵌入式 Qt 开发环境的搭建_Qt_06


Ubuntu下Tiny6410 嵌入式 Qt 开发环境的搭建_linux_07

运行的时候

Ubuntu下Tiny6410 嵌入式 Qt 开发环境的搭建_Qt_08


用 SD 卡或者 tftp 把编译好的代码拷贝到 Tiny6410 板子中,

#cp /sdcard/ARMTEST /bin

#chmod +x /bin/ARMTEST

#ARMTEST -qws

错误区:
1、在开发板运行时出现类似错误:error while loading shared libraries: libts-0.0.so.0: cannot open shared object file: No such file or directory
安装 QtEmbedded-4.8.5-arm 目录下,把.so 文件都拷贝到开发板的/lib 文件下
2、编译出错:cc1: fatal error: .pch/release-shared-emb-arm/QtGui: No such file or directory
解决方案:configure 参数:后面增加:-no-pch
3、libts-0.0.so.0 need by libQtGui.so: not found(try using -rpath or
-rpath-link)在/usr/local/qt-arm/qt-everywhere-opensource-src-4.8.5/mkspecs/qws/linux-arm-g++/ qmake.conf 文件中增加-lts。
由于老的 arm-linux-gnu 工具链不支持 64 位,因此需要安装 32 位库
sudo apt-get install lsb-core