[经验] Ubuntu下Qt嵌入式交叉编译开发环境搭建

通宵敲代码   2015-6-28 22:41 楼主
本开发环境可以实现Ubuntu下Qt程序的基本开发,
并可随意编译PC、ARM两种格式的可执行程序。
方便实现程序的上位机调试、与开发板测试。

软加班下载及系统环境版本:

1、linux操作系统环境
         14.04-desktop-i386.iso
         http://yunpan.cn/cQFJdPiqAThpD  访问密码 15ec
2、GCC 编译器
         gcc version 4.8.2
         需联网在线安装更新
3、ARM-GCC编译器
         arm-linux-gcc4.4.3.tar.gz
         http://yunpan.cn/cQFJRkbqWgrWu  访问密码 3563
4、Qt开发软件
         QtSdk-offline-linux-x86-v1.2.1.run
          http://yunpan.cn/cQFJuiQpkufHW  访问密码 13dc
5、Qt的ARM编译工具链源码  
          qt-everywhere-opensource-src-4.8.5.tar.gz
          http://yunpan.cn/cQFjXtt2Vh4DM  访问密码 d234  







回复评论 (10)

这是一段从网上找到的关于Qt各个版本的介绍,介绍了Qt各个版本之间的关系,告诉我们该用哪一个软件包,
个人认为分析得还算不错,发出来与大家共享。


关于各种版本Qt安装程序的说明:
1、qt-x11-opensource-src-4.3.2.tar.gz
2、qt-embedded-linux-opensource-src-rcl.tar.bz2
3、qt-everywhere-opensource-src-4.8.5.tar.gz
4、QtSDK-offline-linxu-x86-v1.2.1.run
5、qt-creator-linux-x86-opensource-2.5.0.bin
        首先网上有人说安装 1和2,就可以了,因为1可以提供Qt designer 和qvbf,然后2可以提供嵌入式编译库,两者安装后就可以搭建一个嵌入式qt开发环境了,其实没错,不过已经过时了,因为现在有了Qt creator。Qt creator 就包含了 Qt designer和qvbf,因此我们仅仅安装5的版本就可以替代1的安装。不过2也还是要安装,不过了,像2那种版本的编译库现在已经有了更加齐全的库替代,那就是3了。而4就是5的升级版了,它不仅可以包含5拥有的所有东西,而且能开发嵌入式应用程序,不过暂时还没测试。

QtSDK1.2.1所含工具:
(位于“Qt开发环境安装包”文件夹下)
1、Qt库(4.8.1版本)
2、塞班Symbian手机和诺基亚N9模拟器
3、Qt Creator集成开发环境(2.4.1版本)
4、Qt Mobility(1.2版本)
5、Qt集成开发工具集
6、远程编译器



点赞  2015-6-28 22:42
要搭建Qt开发环境,首先需要一个Linux系统,此处我们选用最新的长期支持版本Ubuntu14.04。 安装过程与以前的版本相同,便不再赘述。 安装Qt程序需要用到GCC编译器, 因此在安装Qt直线我们要先更新一下系统的GCC工具链。 使用sudo apt-get update 更新软件源, 然后执行sudo apt-get install gcc 安装GCC工具链。 使用gcc -v命令可查看GCC版本,并可确认是否安装成功。 其次,程序安装还需要一些必要的链接库,即依赖包。
(可使用sudo apt-get install ****安装)
build-essential
libglib2.0-dev
libSM-dev
libxrender-dev
libfontconfig1-dev
libxext-dev
libx11-dev
libxtst-dev
之后便可执行./QtSdk-offline-linux-x86-v1.2.1.run进行Qt程序的安装,
安装过程中若提示不是可执行文件,或没有可执行权限,可参考如下办法。
增加文件可执行权限,sudo chmod 755 QtSdk-offline-linux-x86-v1.2.1.run
安装完成后,可得到一个Qt开发软件,并可进行Qt的上位机程序开发。
QQ截图20150628224438.png
本帖最后由 通宵敲代码 于 2015-6-28 22:45 编辑
点赞  2015-6-28 22:43
然而,我们最主要的目的是要变编译出可以在开发板上运行的程序,因此我们需要增加arm-linux-gcc4.4.3.tar.gz交叉编译工具。
并添加Qt程序ARM版本的交叉编译器,已便将程序编译成ARM版本。


其中arm-linux-gcc4.4.3.tar.gz交叉编译工具链是已经编译好的,
我们只需将其解压合适的位置,并在系统的环境变量中增加路径即可。
首先新建文件夹sudo mkdir /usr/local/arm-linux-gcc-4.4.3
然后将arm-linux-gcc4.4.3.tar.gz拷贝到文件夹下,
执行sudo tar -zxvf arm-linux-gcc4.4.3.tar.gz解压工具链。
最后在~/.profile或~/.basgrc文件最后添加如下语句即可
export PATH=$PATH:/usr/local/arm-linux-gcc-4.4.3/bin
如果使用root用户,可在/root/.profile或/root/.bashrc中添加。
最后执行arm-linux-gcc -v可查看工具链版本并验证是否安装成功。

然后我们便要添加Qt的ARM编译器了。
首先将qt-everywhere-opensource-src-4.8.5.tar.gz拷贝到/usr/local下,
执行sudo tar -zxvf qt-everywhere-opensource-src-4.8.5.tar.gz解压。
然后执行sudo mv qt-everywhere-opensource-src-4.8.5.tar.gz qt-arm
并进入qt-arm目录下。

执行如下执行对编译其进行参数配置。
# ./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-separate-debug-info \
-nomake examples -nomake tools -nomake docs


如果放弃配置,则使用命令:# make confclean

配置完成后,执行make命令进行编译,此过程需要2个小时左右。
如果中间不提示错误,请耐心等待。

编译完成后,便可执行make install安装编译工具,
安装完之后,会在/usr/local/Trolltech/
下找到我们的编译工具QtEmbedded-4.8.5-arm。


此时便可打开Qt程序,在程序选项中增加编译工具

添加工具链接,参考路径设置
QQ截图20150628224858.png

添加Qt版本,参考路径设置
QQ截图20150628224814.png


之后便可在工程项目中添加不同的编译器进行编译了

QQ截图20150628224838.png









点赞  2015-6-28 22:50
环境搭建完成之后,我们便可以选择不同的编译器对程序编译。不同的程序编译出来之后,其可执行文件可使用file命令进行查看,
分辨会有如下提示,告诉用改程序的指令构架、编译器等信息。

如下图:PC版本的程序
QQ截图20150628225116.png

ARM版本的程序
QQ截图20150628225128.png

之后我们只需将ARM程序及必要的连接库拷贝到开发板上相应的位置,
就可以执行我们自己的Qt程序了







点赞  2015-6-28 22:52
引用: 通宵敲代码 发表于 2015-6-28 22:52
环境搭建完成之后,我们便可以选择不同的编译器对程序编译。不同的程序编译出来之后,其可执行文件可使用fi ...

这么详细,楼主最近在玩这个?
加油!在电子行业默默贡献自己的力量!:)
点赞  2015-6-29 10:19
引用: soso 发表于 2015-6-29 10:19
这么详细,楼主最近在玩这个?

公司再用Qt,
我最近在研究Linux驱动开发!
都是很早以前的经验了,最近工作上又要用!
顺手整理了一下,发出来给伙计们当参考!
点赞  2015-6-29 19:14
引用: 通宵敲代码 发表于 2015-6-29 19:14
公司再用Qt,
我最近在研究Linux驱动开发!
都是很早以前的经验了,最近工作上又要用!
顺手 ...

真不错  谢谢分享
加油!在电子行业默默贡献自己的力量!:)
点赞  2015-6-30 09:25
引用: soso 发表于 2015-6-30 09:25
真不错  谢谢分享

点赞  2015-7-2 00:24
听版主这么一说,发现我走的弯路还真的不少,刚刚能够让ARM9开发板上跑一个简单的模拟时钟的程序。光是前期环境的搭建和配置就真的把我绕晕了,之后还出现各种奇怪的问题,到处百度,各种尝试(发现不懂脚本还真的很难知道开发板前期的配置程序是怎么跑起来的)。再接再厉
点赞  2015-7-15 17:18
多谢楼主分享,先收藏了。
点赞  2015-7-15 18:23
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复