基于linux-ARM的QT环境搭建
- 格式:doc
- 大小:59.50 KB
- 文档页数:10
qt交叉编译arm linux程序-概述说明以及解释1.引言1.1 概述引言部分,概述部分内容:QT交叉编译是指在一台主机上使用QT开发环境,将程序编译为在不同操作系统或硬件平台上运行的可执行文件。
而ARM Linux是一种基于ARM架构的开源操作系统,在嵌入式系统领域广泛应用。
本篇文章将介绍如何使用QT开发环境进行交叉编译,将程序编译成可以在ARM Linux 平台上运行的程序。
本文将从整体上介绍QT交叉编译的概念和原理,以及ARM Linux 平台的基本知识。
然后,我们将详细介绍如何搭建QT交叉编译环境,并给出一步一步的操作步骤。
最后,我们将总结整篇文章的内容,并展望QT交叉编译ARM Linux程序的意义和应用前景。
通过本文的学习,读者将能够了解QT交叉编译的基本原理和步骤,具备搭建QT交叉编译环境的能力,并能够将编写的程序成功地交叉编译为可以在ARM Linux平台上运行的程序。
这对于需要在嵌入式系统中进行开发的工程师和开发者来说,具有重要的实际意义。
然而,本文还存在一些不足之处,例如在具体步骤的讲解中可能存在一些细节问题,还有一些更高级的主题未能深入探讨。
因此,我们对本文的改进方向也进行了一定的展望,希望能够进一步完善和拓展相关内容。
总之,通过本文的学习,读者将能够掌握QT交叉编译ARM Linux 程序的基本知识和技能,为嵌入式系统的开发和应用提供了一定的参考和指导。
希望本文对读者有所帮助,并能够引起更多对此领域的关注和研究。
1.2 文章结构文章结构部分的内容是对整篇文章的组织和框架进行介绍。
通过明确文章的结构,可以帮助读者更好地理解文章内容和主要观点的呈现方式。
在本文中,文章结构包括以下几个方面:1. 引言:介绍本篇文章的背景和意义,以及总结文章的主要内容。
2. 正文:主体部分,详细介绍QT交叉编译ARM Linux程序的相关知识和步骤。
- 2.1 QT交叉编译概述:介绍QT交叉编译的基本概念、原理和应用领域。
在Linux操作系统上进行Qt开发随着计算机科学和技术的迅速发展,软件开发在我们日常生活中扮演着越来越重要的角色。
而在软件开发领域中,Qt框架是一个备受推崇的选择。
1. 简介Qt是一种跨平台的应用程序开发框架,可以在Linux、Windows和Mac等操作系统上进行开发。
它提供了丰富的工具和库,使开发者能够轻松构建出跨平台的应用程序。
2. Linux操作系统Linux是一种自由开源的操作系统,它以其稳定性和安全性而闻名。
对于Qt开发来说,Linux提供了一个理想的开发环境。
2.1 安装Qt首先,我们需要在Linux操作系统上安装Qt。
可以从Qt官方网站下载适用于Linux的Qt安装程序,并按照提示进行安装。
2.2 配置开发环境安装完成后,我们需要配置Qt开发环境。
在终端中输入以下命令,将Qt添加到系统路径中:```export PATH=$PATH:/path/to/qt/bin```这样,我们就能够在任何位置运行Qt开发工具。
3. Qt开发工具Qt提供了一系列开发工具,使我们能够高效地进行软件开发。
3.1 Qt CreatorQt Creator是一个集成开发环境(IDE),具有代码编辑、调试和构建等功能。
它提供了一个直观的界面,使我们能够轻松创建和管理项目。
3.2 Qt DesignerQt Designer是Qt的可视化界面设计器,可帮助我们设计GUI界面。
它提供了丰富的界面组件和布局工具,使我们能够快速创建出漂亮的界面。
4. Qt应用程序的创建和编译在Qt Creator中,我们可以创建一个新的Qt项目。
选择适当的项目模板,并按照向导的指示进行配置。
在项目中,我们可以使用C++或Qt自身的脚本语言QML进行编码。
在代码编写完成后,我们可以使用Qt Creator进行编译和构建。
它会自动处理依赖关系,并生成可执行文件。
5. 调试和测试在Qt Creator中,我们可以使用调试器进行调试。
它提供了断点、变量监视和堆栈跟踪等功能,帮助我们追踪和修复程序中的错误。
Windows平台交叉编译ArmLinux平台的QT5.7库1、准备交叉编译环境环境说明:Windows 7 64位此过程需要:(1)Qt库开源代码,我使⽤的是5.7.0版本;(2)Perl语⾔环境5.12版本以上;(3)Python语⾔环境 2.7 版本以上;(4)Windows平台上的MinGW开发⼯具集(内含本地编译器gcc、g++ 4.9以上版本,⽀持c++11);(5)Windows平台上的交叉编译器arm-linux-gnueabihf(gcc、g++4.9以上版本,⽀持c++11)。
1.1、下载Qt库源代码到Qt官⽹官⽹https://www.qt.io/download-open-source/#section-2下载qt-everywhere-opensource-src-5.7.0.zip或者qt-everywhere-opensource-src-5.7.0.tar.gz。
1.2、安装Perl到Perl官⽹https:///get.html下载ActivePerl 5.12以上版本,如ActivePerl-5.24.0.2400-MSWin32-x86-64int-300560.exe。
安装完成后将安装⽬录⾥的bin⽬录路径添加到windows环境变量的PATH中。
1.3、安装Python到Python官⽹ https:///downloads/下载Python2.7以上版本,如python-3.5.2.exe。
安装完成后将安装⽬录⾥的bin⽬录路径添加到windows环境变量的PATH中。
1.4、MinGW开发⼯具集MinGW⼯具集内含编译器⼯具gcc、g++等,需要此⼯具集来编译Qt的qmake等开发⼯具,因为qmake这些开发⼯具是在本地windows上运⾏的。
要求4.9以上版本的gcc、g++,4.8以上就已经⽀持c++11。
32位系统可以到https:///projects/mingw/下载mingw-get-setup.exe后进⾏在线安装;64位系统到https:///projects/mingw-w64/下载mingw-w64-install.exe后进⾏在线安装。
一、下载Qt源码包到本机,然后解压缩1.下载qt-x11-free-3.2.1.tar.gz和qt-x11-opensource-src.tar.gz二进制包。
2.在终端切换至qt-x11-free-3.2.1.tar.gz所在目录下,执行:tar zxvf qt-x11-free-3.2.1.tar.gz -C /usr/local3.已同样的方法将qt-x11-opensource-src-.tar.gz源码包解压缩到/usr/local目录PS:(推荐解压缩至/usr/local目录,目录可以根据名称自己创建)二、进入用户主目录编辑该目录下的.bash_profile文件,并设置Qt环境变量,在这里我们以root用户以例。
#vi /root/.bash_profile //打开root用户.bash_profile文件在root用户.bash_profile文件中设置环境变量,在此文件里面添加如下内容:QTDIR=/usr/local/qt-x11-free-3.2.1PATH=$QTDIR/bin:$PATHMANPATH=$QTDIR/doc/man:$MANPATHLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATHexport QTDIR PATH MANPATHLD_LIBRARY_PATH添加完上面信息后按ESC键,“Shife+:”组合键回到vi编辑器命令行状态,输入wq!(强制保存退出)三、添加完环境变量后,使环境变量立即生效:#source /root/.bash_profile四、进入Qt解压缩的目录#cd $QTDIR或#cd /usr/local/qt-x11-free-3.2.1都可以,因为在/root/.bash_prof ile文件已经定义了环境变量QTDIR=/usr/local/qt-x11-free-3.2.1和export QTDIR 。
linux ubuntu X86和ARM平台QT安装步骤Linux ubuntu 平台:3种方式1、直接安装:sudo apt-get install libqt4-dev qtcreator(最好)2、源代码安装,一般不用3、sdk安装:下载sdk:sudo apt-get install libglib2.0-dev libSM-dev libxrender-dev libfontconfig1-dev libxext-devARM平台:1、安装交叉工具链,能够使用arm-linux-gnu-gcc命令编译如4.1.1版本的:mkdir /opt/crosstooltar -jxvf 路径/4.1.1_softfloat_withlib.tar.bz2 -C /opt/crosstool //将编译工具解压到crosstool中。
配置环境变量,当用arm-linux-gnu-gcc 编译程序时能够找得到此文件所在的目录例:vim /home/farsight/.bashrc在末尾添加:export PATH=$PATH:/opt/crosstool/4.1.1/bin2、看 4.1.1/arm-linux-gnu/lib下是否有zlib,libjpeg,libpng,freetype库文件如果没有,安装:以zlib为例:从下载源码tar -jxvf xxx/zlib-1.2.5.tar.bz2cd zlib-1.2.5CC=arm-linux-gnu-gcc AR=arm-linux-gnu-ar RANLIB=arm-linux-gnu-ranlib LD=arm-linux-gnu-ld ./configure --prefix=/opt/crosstool/4.1.1/arm-linux-gnumakemake install其他的网址是:安装步骤和上面一样3、Qt默认的ARM交叉编译器是:arm-linux-开头的,但是系统开始安装的是arm-linux-gnu开头的,所以要改qt源码:例:vim qt-everywhere-opensource-src-4.6.3/mkspecs/qws/linux-arm-g++/qmake.conf在arm-linux-后加个gnu,例:arm-linux-gnu-gcc...4、qt配置细微配置:编译qconfig,用qconfig执行相应的文件cd qt-everywhere-opensource-src-4.6.3/tools/qconfigqmakemakesudo cp qconfig /usr/bincd qt-everywhere-opensource-src-4.6.3/src/corelib/global qconfig qfeatures.txt...粗配置:使用./configure --help5、安装文件。
QT交叉编译环境QT交叉编译环境2010-05-06 22:39QT4终端安装步骤:一、系统更新更新管理器进行二、1、在终端下对输入下列命令对QT4进行安装。
1、apt-get install build-essential。
2、apt-get install qt4-dev-tools qt4-docqt4-qtconfig qt4-demos qt4-designer。
3、apt-get install qdevelop。
三、交叉编译环境3.4.1(这是ARM-LINUX交叉编译环境和QTQTEmbedded-4.4.3有区别)1.回到根目录:cd/2.在根目录下输入cd/tmp tar xvzf arm-linux-gcc-3.4.1.tgz-C/(该文件能直接解压到/usr/local/arm/3.4.1/bin)3.gedit/root/.bashrc(打开.bashrc文件在最后一行输入下面的内容)4.export PATH=$PATH:/usr/local/arm/3.4.1/bin(设置环境变量)5.arm-linux-gcc-v(查看gcc版本)四、安装编译QT4/EMBEDDED 1、拷贝文件local.tar.gz QTEmbedded-4.4.3.tar.gz到usr/local下。
对两个文件进行解压缩。
2、删除usr/local目录下的bin,etc,include,lib四个文件。
3、拷贝解压文件local里面的bin,etc,include,lib四个文件到usr/local目录下,删除local.4.进入usr/sbin 5.ln-s/usr/local/QtEmbedded-4.4.3/bin/qmake tmake//生成qmake的快捷方式tmake下面就可以使用tmake对qt源代码进行编译生成arm体系代码五、编译QT4应用程序cd/root/learn/qt/hello进入源程序所在的目录qmake-qt4-project qmake-qt4 make进行编译./helloqt执行该指令可以看到可视化的运行结果需要到达进行交叉编译的文件下使用tmake(是qt的bin目录下生成的qmake的快捷方式)tmake-project(生成makefile文件)tmake hlqhello.pro make(生成arm可执行文件)注意:复制别人的文件后应该先删除先前生成的文件,然后再进行上面的操作。
qt-4.8.4安装和环境变量配置在Linux中分别安装应⽤于不同平台的Qt:PC。
嵌⼊式X86;ARM。
这三者PC版、嵌⼊式X86版和ARM版的差别主要体如今:当configure时分别加了不同的參数,详细差别是:PC平台(X11平台):在linux中全安装qt。
⽤它编译好程序后,直接⽤“./”就可执⾏。
嵌⼊式X86平台:带有qvfb功能,在PC机上能够模拟应⽤程序在arm开发板上的执⾏情况。
⽤此编译好的程序,仅仅⽤“./”命令不能够执⾏,必须加上參数 [ -qvfb ]–qwsPs:嵌⼊式X86平台,这个是PC下的⼀个qtopia。
他⾃带有个模拟器。
能够模拟出arm开发板的样⼦出来。
⽅便调试;ARM平台:编译好的程序。
⽤于在arm平台上执⾏。
Ps:ARM平台。
这个主要是⽤来编译,由于要下载到开发板上。
须要arm版的qte的库⽂件,编译后直接下载到开发板执⾏; Ps:编译x86是为了得到makeqpf。
编译pc是为了得到qvfbA. 安装PC平台的QT1) 配置:执⾏./configure -prefix /usr/local/qt-4.8.4-x112) 编译:make (时间⽐較长)3) 安装:make install (因为在配置时指定了安装⽂件夹,这样将被安装到⽂件夹下/usr/local/qt-4.8.4-x11)B. 安装ARM平台的QT/E1)配置:进⼊cd qt-4.8.4-arm,然后执⾏./configure \-opensource \-confirm-license \-release -shared \-embedded arm \-xplatform qws/linux-arm-g++ \-depths 4,8,16,32 \-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/lib2) 编译:make (时间⽐較长)3) 安装:make install环境变量配置:#!/bin/shexport TSLIB_ROOT=/usr/local/tslibexport TSLIB_TSDEVICE=/dev/input/event0export TSLIB_TSEVENTTYPE=H3600export TSLIB_CONFFILE=/usr/local/tslib/etc/ts.confexport TSLIB_PLUGINDIR=/usr/local/tslib/lib/tsexport TSLIB_CALIBFILE=/etc/pointercalexport TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/tsexport TSLIB_CONSOLEDEVICE=noneexport TSLIB_FBDEVICE=/dev/fb0export QTDIR=/opt/qt-4.8.4/export QT_QWS_FONTDIR=/opt/qt-4.8.4/lib/fontsexport LD_LIBRARY_PATH=$QTDIR/lib:/root/tslib/build/lib:$LD_LIBRARY_PATH export PATH=/bin:/sbin:/usr/bin/:/usr/sbin:/root/tslib/build/binexport QWS_DISPLAY="LinuxFb:mmWidth152:mmHeight88:1"。
ARM开发之QT平台搭建---基于Linux系统的ARM平台QT移植第一部分:移植前述现在ARM行业如火如荼,使用linux作为操作系统的也较多,本文只针对ARM和linux平台下的QT移植和程序测试做一翻详解,对于wince等系统不涉及。
ARM开发的话必须具备以下硬件或平台条件:1.ARM硬件开发板,现在处理器用的多是ARM9或者ARM112.针对嵌入式行业的Linux系统内核,以及PC机上的Linux系统开发环境,比如Ubuntu,Redhat,CentOs等3.ARM软件开发环境,这个比较复杂多样。
ARM开发无非是底层驱动移植和开发,以及顶层的应用程序开发,还有相对应的各种调试。
不管是开发还是调试,都要用到相对应的工具或软件。
驱动开发的领域本文不涉及,而顶层应用程序开发的一个重要环节就是面向客户的图形界面开发,而图形界面开发嵌入式领域用的比较多的是QT。
Qt是诺基亚开发的一个跨平台的C++图形用户界面应用程序框架。
它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。
Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。
4.应用程序在pc机上开发,完成后希望在ARM板上调试,以确认程序的正确性和完整性等,这时应该如何办呢?这里面涉及的知识比较多,有:开发板引导启动文件Uboot;Linux内核镜像的烧写;交叉编译;搭建QT开发环境;开发板与PC机Linux系统的NFS挂载连接;再就是QT 程序在线测试等。
上述中交叉编译之前的所有操作本文不涉及,读者如有不明之处请另找资料,本文意在构建一个QT开发环境,和使用开发板通过NFS挂载后的QT应用程序测试环境。
第二部分:QT移植具备条件1.交叉编译器:版本较多,现在常用的是arm-linux-gcc-4.3.2.或者arm-linux-gcc-4.1.22. QT版本:qt-embedded-linux-opensource-src-4.5.3.tar.gz和qt-x11-opensource-src-4.5.3.tar.gz,可以从QT官网上下载各种版本(注:开发QT的公司已被诺基亚公司收购)官网地址:/2.触摸屏支持tslib3.Linux系统上的一些编译工具或者库说明:(1)交叉编译工具是在QT库安装时要用到它来编译,然后QT应用程序调试时需要要到它编译成ARM板上能运行的代码。
(2)qt-embedded-linux-opensource-src包含了支持最终到ARM开发板上运行的应用程序的库文件,而qt-x11-opensource-src则是为了能在PC机上进行针对ARM板环境的模拟程序调试,比如说没有开发板的时候,但又想验证能否在ARM板上运行,此时需要用到。
(3)tslib则是用来校准触摸屏用的,触摸数据最先由开发板上驱动程序得到,(驱动已经加载到内核中),然后传递给tslib,tslib将原始数据进行一定去抖,校准等工作,然后把数据传给顶层应用程序,我是这样理解的,不知道正确否。
第三部分:QT移植详情注:此移植过程在Ubuntu9.04系统下完成带#开头的表示终端运行的命令带//开头的表示注释红色字体表示应该特别注意的地方我的移植环境1.开发板:友坚恒天公司的s3c64102.PC机系统windos xp3.PC机上装Vware虚拟机系统:Ubuntu9.044.交叉编译工具:arm920t-eabi-4.1.2.tar.gz5.Qt版本:qt-embedded-linux-opensource-src-4.5.3.tar.gz6.触摸屏校准:tslib1.4.tar.gz第一步:安装交叉编译工具(解压就行,然后设置一个环境变量)先将arm920t-eabi-4.1.2.tar.gz拷贝到/home/resource下,然后解压到根目录#cd /home#mkdir resource# cd /home/resource# tar zxvf arm920t-eabi-4.1.2.tar.gz –C /注:zxvf是解压参数,-C是改变解压路径,/表示到根目录完成后在它的安装路径是:/opt/toolchains/arm920teabi/,可以查看到。
为了后续QT安装能够调用arm-linux-gcc等命令,需要设置环境变量# gedit /etc/bash.bashrc (手动以记事本打开一样的,后续同理)//添加linux系统环境变量在该文件的末尾加上export PATH=$PATH:/opt/toolchains/arm920teabi/bin保存关闭# source /etc/bash.bashrc#arm-linux-gcc –v //查看编译器版本注:1.至于安装路径选择哪里,可以自己定,但是之后的环境变量设置就一定要跟你的安装路径对应好。
就比如说我的是/opt/toolchains/arm920teabi/,在该目录下有一个bin目录,里面你可以查看到一些arm-linux-gcc等命令,那如果你更换了路径,则一样要找到那个bin目录,然后设置环境变量。
若能通过arm-linux-gcc –v命令查看到该交叉编译器的版本,则表示安装完成,并且环境变量设置成功。
2.不同的交叉编译工具默认的安装路径是不同的,比如说arm-linux-gcc-4.3.2的默认安装是在/usr/local/arm/下,这个自己知道就行,关键是环境变量要设好。
第二步:安装tslib(解压并安装,然后设置配置文件)注:此步需要一些工具,ubuntu 下需要安装automake、autoconf、libtool,可以执行下面语句安装#apt-get install automake autoconf libtool注:tslib是支持触摸品用的,触摸屏最终能够使用的条件是:a.硬件支持触摸屏b.内核已经加载触摸屏驱动,可以在nfs挂载的方式下用命令cat /dev/input/event0来测试是是否加载了驱动,如果已经加载,这个时候你点击触摸屏终端是有反应的(出现一些乱码)。
前面的命令中event0是对应触摸屏的硬件设备号,你可能不是event0,但一般用event0或者event1c.有支持触摸屏校准的库或者程序,用的多的是tslib,另外linuxtp好像也可以。
d.应用程序支持触摸屏将tslib1.4.tar.gz拷贝到/home/resource下,然后解压到/home目录下# cd /home/#tar zxvf ./resource/tslib1.4.tar.gz //解压到/home(不行的话使用#tar zxvf ./resource/tslib1.4.tar.gz -C ./ 命令,后续操作同理)# cd tslib#./autogen.sh#./configure --prefix=/usr/local/tslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes//配置tslib安装(路径设置在/usr/local/tslib/)# make //生成Makefile# make install //安装# cd /home#rm –r tslib //安装完成,可以选择删除解压文件注:安装过程中若没有出现错误,则表示安装成功,此时应该可以在/usr/local/tslib/下看到安装好的文件,若中途出现错误,则应该检查交叉编译器是否安装好,环境变量是否设置好,然后tslib的配置命令是否有错。
(注:#./configure --prefix 语句中的--prefix 可以换成–prefix 试一试)第三步:安装qt-embedded-linux-opensource-src-4.5.3.tar.gz注:先安装Linux下的G++工具#apt-get inatall g++ //已安装则不需要把qt-embedded-linux-opensource-src-4.5.3.tar.gz拷贝到/home/resource下#cd /home#tar zxvf ./resource/qt-embedded-linux-opensource-src-4.5.3.tar.gz//将其解压到/home下# cd qt-embedded-linux-opensource-src-4.5.3#./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.3 \ //指定安装目录-release -shared \ //配置QT库裁剪参数-fast \-pch \-no-qt3support \-qt-sql-sqlite \-no-libtiff -no-libmng \-qt-libjpeg \-qt-zlib \-qt-libpng \-qt-freetype \-no-openssl \-nomake examples -nomake demos -nomake tools \-optimized-qmake \-no-phonon \-no-nis \-no-opengl \-no-cups \-no-xcursor -no-xfixes -no-xrandr -no-xrender -no-xkb -no-sm \-no-xinerama -no-xshape \-no-separate-debug-info \-xplatform qws/linux-arm-g++ \-embedded arm \-depths 16 \-no-qvfb \-qt-gfx-linuxfb \-no-gfx-qvfb -no-kbd-qvfb -no-mouse-qvfb \-qt-kbd-usb \-confirm-license \-no-armfpa-qt-mouse-tslib \-L /usr/local/tslib/lib \ //不定的,对应你的tslib安装库位置-I /usr/local/tslib/include //不定的,对应tslibin头文件位置注:上面的代码比较长,复制时小心,该代码用于对QT库的裁剪配置,因为QT库过大,如果完全编译的话,可能最终arm板负载不了,所以需要裁剪。
而裁剪的参数没有规定的,你甚至可以不裁剪,但一般情况会把鼠标库,例子,样例代码等去掉。
你可以输入./configure -help来查看各选项的含义,但都是英文的。
以上“\”符号表示该行命令没有结束,接着下一行。
如果把上述代码复制到终端命令行没有出错,则会出现一个提示选择信息,那是QT 安装的版本选择信息,一般选择“O”,意思是开源(opensource),然后继续。