天天看点

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

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 开发环境的搭建

(5)输入:source .bashrc

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

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

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 开发环境的搭建

#./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 version出现红色感叹号的情况,就在Tool Chains下面添加新的工具。

构建项目的时候

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

运行的时候

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

用 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

继续阅读