在Linux环境交叉编译Qt5.5.0源码及编译示例

在Linux环境交叉编译Qt5.5.0源码及编译示例

实验环境

交叉编译平台 (on VMware14.0,Win10)

交叉编译链 gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux

前提 得到交叉编译链以及下载Qt5.5.0的源码包

硬件 无

实验目的

在Linux上使用交叉编译链编译出Qt5.5的库以及qmake工具。

实验原理

根据Qt5.5.0源码包内的README文件,先安装好编译所需的库如X11,Xcb等


然后根据如下格式进行配置安装:


编译Qt库主要步骤:

1、下载并解压安装交叉编译链,设置环境变量;

2、下载并解压所需Qt源码包,得到源码;

3、下载编译所需的库;

4、更改qmake.conf文件中的编译链信息,与所用交叉编译链统一;

5、进行配置,得到MAKEFILE文件;

6、make make install;

7、设置qmake链接的库路径;

实验过程

1、已获得交叉编译链:


解压完其目录文件以及bin内命令如图:

2、设置环境变量并验证


(注:使用export PATH时只对本次终端起作用,若另开终端无此环境变量,若需永久则需在/etc/profile或/etc/.bash.bashc文件中export PATH)


显示编译链的版本相关信息,完成。

3、从Qt官网下载开源源码包,解压得文件如下:


3、安装相关的库


4、修改对应qmake.conf文件


根据交叉编译链修改(此处为了保险加了交叉编译链的绝对路径):


5、进行配置,主要配置版本(-release)、安装目录(-prefix+路径)、所使用的平台(-xplatform linux-arm-gnueabi-g++)、附加项等


回车后会显示询问

Yes 回车

打印相关信息



此时已生成MAKEFILE文件

6、make (可加参数多线程编译-j)

7、make install

8、到安装目录下:


9、./bin目录下


10、qmake -v打印版本信息以及基于的库目录


尝试交叉编译Qt工程

用qtcreater新建一个带ui的工程,用qmake编译,查询文件信息


发现错误,编译出来是x86-64的而非arm的,查询发现是qmake链接的库出现问题,默认安装后所链接到/usr/lib/x86_64-linux-gnu目录下的库,而交叉编译所需的库在安装目录下的lib里,所以需更改路径;

1、cd到/usr/lib/x86_64-linux-gnu/qtchooser

2、更改该目录下的qt5.conf文件,其默认是/usr/lib/x86_64-linux-gnu

改成安装目录下的lib目录


保存后重新qmake工程,生成MAKEFILE文件后执行make

qmake -v查看qt版本、库路径以及file untitled查看可执行文件信息如下


此时已正确显示版本信息以及成功交叉编译为ARM架构所需文件,完成。

你可能感兴趣的:(在Linux环境交叉编译Qt5.5.0源码及编译示例)