嵌入式Qt开发环境的搭建详解
####一、嵌入式Qt开发环境的搭建前奏 1、下载[arm-linux-gcc-4.4.3-20100728.tar.gz](http://download.csdn.net/download/zlyong0018/4646377) 2、下载[qt-everywhere-opensource-src-4.8.5.tar.gz(Qt的源码)](http://download.qt-project.org/archive/) 3、下载[qt-creator-linux-x86_64-opensource-2.5.2.bin(我的系统是64位,所以选择x86_64)](http://download.qt-project.org/archive/) 4、下载[tslib-1.4.tar.gz(触摸屏校验工具)](http://download.csdn.net/download/liuqiqi677/3177449) ####二、嵌入式Qt开发环境的搭建间奏 1、系统环境 主机操作系统:ubuntu14.04 主机编译器:gcc4.4.3, 交叉编译器:arm-linux-gcc-4.3.3 2、安装交叉编译器 (1)首先以root用户登入 (2)复制arm-linux-gcc-4.3.2.tgz到根目录下tmp文件夹里 (3)解压命令tar xvzf arm-linux-gcc-4.3.2 -C /,注意以上命令必须要有-C而且是大写的后边有个空格也要注意 (4)配置下编译环境路径,在控制台下输入 gedit /root/.bashrc 等一会出来文本编辑器后在文件最后(最后一行)加上下面代码 export PATH=/opt/FriendlyARM/toolschain/4.4.3/bin:$PATH 重新打开一个终端,使上面的配置文件生效;输入命令 arm-linux-gcc -v; 如果出现gcc的版本信息,就代表交叉编译器安装成功,会输出gcc的版本号; 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 autoconf automake libtool 编译期间出现错误:make没有指定的makefile 解决办法:不要在虚拟机与window的共享文件中进行make,会出错 4、安装QtCreator 4.1 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位的应用程序; 4.2 编译Qt库源码 4.2.1 解压 将源码qt-everywhere-opensource-src-4.8.5.tar.gz进行解压,并复制三份到/usr/local目录下,并分别命名为qt-pc,qt-x86,qt-arm 4.2.2 编译PC版 进入qt-pc目录,执行如下操作: \#./configure \#make \#make install 编译过程中出现的问题: 出错:g++命令未找到 这个错误主要是ubuntu 默认 不安装 g++,apt-get install g++即可 出错:Basic XLibfunctionality test failed! 这个错误主要是因为,XLib库没有安装,所以在编译X11平台时,应该保证,以下命令正确执行:sudo apt-get install libx11-dev libxext-dev libxtst-dev 注意:可以使用 make confclean 命令 把以前的配置信息清除掉,然后再重新配置。 [点击获取更详细的步骤](http://www.cnblogs.com/1996jiwei/p/6688620.html) 4.2.3 编译x86版 进入qt-x86目录,执行如下操作: \# ./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.5/bin目录。 编译qvfb时,出现了如下错误: x11keyfaker.cpp:48:34: 致命错误: X11/extensions/XTest.h:没有那个文件或目录 编译中断。make: *** [.obj/release-shared/x11keyfaker.o] 错误 1 解决方法:sudo apt-get install xorg-dev 如果makefile中没有-lXtst选项,则修改makefile 中 LIBS 选项: 添加 -lXtst选项 4.2.4 编译ARM版 必须加上“-prefix /usr/local/Trolltech/QtEmbedded-4.8.5-arm ”参数, 不然安装后不在QtEmbedded-4.8.5-arm文件夹下,而是覆盖了QtEmbedded-4.8.5。
# ./configure
-prefix /usr/local/Trolltech/QtEmbedded-4.6.3-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-separate-debug-info
-nomake examples -nomake tools -nomake docs
-qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib
如果放弃配置,则使用命令:# make confclean
编译:# make
安装:# make install
安装完成后,在/usr/local/Trolltech目录中有三个文件夹:Qt-4.8.5、QtEmbedded-4.8.5、QtEmbedded-4.8.5-arm。
4.3 安装完后
4.3.1 qvfb的测试
运行qvfb,提示了如下错误,在网上也查了很多种解决办法,最后还是没有解决; 有的说要重新编译内核,并带上参数;觉得比较麻烦,就没有去尝试;不过这个错误并不影响我们仿真模拟Qt4程序。
4.3.2 QtCreator编译前的配置
X86的调试编译与调试
(1)打开QtCreator ,工具---->选项--->构建和运行 进行设置,在Qt版本菜单下,手动设置选择qmake路径
(2)打开QtCreator 对其进行设置,点击左边的项目,选择运行,对其进行设置,在参数里添加 -qws参数
(3)编译与运行,现在终端 输入命令:qvfb -width 800 -height 480 & 打开虚拟缓冲端;然后就可以在QtCreator对程序进行编译、运行了;
关于ARM移植的那部分还没有做,等以后自己做的话,再补充。