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


首先要准备好交叉编译所需要的软件包:

(1)arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz(交叉编译环境,tiny6410自带的)

(2)qt-everywhere-opensource-src-4.8.5.tar.gz(Qt的源码,tiny6410自带的)

(3)qt-creator-linux-x86_64-opensource-2.5.2.bin(我的系统是64位,所以选择x86_64,tiny6410自带的)

(4)tslib-1.4.tar.gz(触摸屏校验工具,网上download或者使用git下载)

 

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,文件末尾加上

 exportPATH=/opt/FriendlyARM/toolschain/4.5.1/bin:$PATH


(5)输入:source .bashrc

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


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-linuxac_cv_func_malloc_0_nonnull=yes

最后执行编译命令和安装命令如下:

 1.make 

 2.make install

如果以上步骤没错,则可以在/usr/local/tslib下出现我们需要的库文件,这些库文件我们移植时会用到。

编译期间出现的错误:./autogen.sh: 4: autoreconf:not found

解决办法:sudo apt-get install autoconfautomake 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 installlibx11-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

# ./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路径。


 

构建项目的时候

 



运行的时候


编译成功后,查看下文件是否是ARM格式的,用file来查看

 

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

#cp /sdcard/ARMTEST /bin

#chmod +x /bin/ARMTEST

#ARMTEST -qws


最后效果图

 

 

错误区:

1、在开发板运行时出现类似错误:error while loading sharedlibraries: libts-0.0.so.0: cannot open shared object file: No such file ordirectory


安装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: notfound(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