![532fed22380cc6365d6b4af481a813d6.png](https://i-blog.csdnimg.cn/blog_migrate/54d67f1f9952b0bd25444c6affe2f42b.jpeg)
前言
程序员朋友们相信对Qt都不会陌生,作为跨平台GUI的高效解决方案,Qt已经走入了各个开发领域。龙芯是国产自主处理器的领军者,专注于开发64位高性能CPU以及嵌入式SOC。
我们尝试在2K1000处理器上配置了Qt环境,使龙芯处理器可以使用Qt进行GUI的开发。我们使用了龙芯派二代作为硬件平台,平台介绍可以看这里。
龙芯派二代发布:国产软硬件开发从未如此简单www.toutiao.com开发环境要求
- 该应用的开发环境要求如下:
- 上位机操作系统:Ubuntu 16.04
- 龙芯派操作系统:Loongnix
- 开发工具:Qt 4.8.6、Qt Creator 4.8
- 开发语言:C语言、C++
交叉编译的流程
龙芯派作为嵌入式开发设备,在配置Qt开发环境时,需要通过龙芯派的交叉编译工具链,将Qt的源代码在上位机编译成可执行文件。之后在Qt Creator中才能进行龙芯派开发环境的配置。具体的流程如下图所示:
![4d69123d734f59f0d5813636442a3efa.png](https://i-blog.csdnimg.cn/blog_migrate/0bf0a1a63d79cfd7cba6c9d2bb330ea6.jpeg)
下载安装龙芯派的交叉编译工具链
在安装Ubuntu的上位机下访问
http://ftp.loongnix.org/embed/ls3a/toolchain/gcc-4.9.3-64-gnu.tar.gz
下载编译需要用到的工具链。
下载后打开命令行终端(Ctrl+Alt+t),在命令行执行以下命令解压该文件。
tar -xvf gcc-4.9.3-64-gnu.tar.gz
mv gcc-4.9.3-64-gnu /opt
解压后可以看到,整个工具链是由很多功能文件包组成的,我们只需要使用其中的部分工具链,因此需要通过环境变量的方式指定文件的路径。
环境变量:环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。
![d62aa1afa5e77d0447b2bb0ed3e9f336.png](https://i-blog.csdnimg.cn/blog_migrate/26b55c61b9ae01578e92fa987b45c117.jpeg)
将解压好的工具链文件gcc-4.9.3-64-gnu添加到环境变量中,才能在之后编译Qt源码时,对工具链的调用位置准确无误。
(1)打开家目录(HOME)下的.bashrc
![75c84a3e83093b31e856accdcfecd232.png](https://i-blog.csdnimg.cn/blog_migrate/984a3971bed55c671cab7b8783364b83.png)
(2)将export PATH=$PATH:/opt/gcc-4.9.3-64-gnu/bin添加到最后一行。一般来说,在终端中执行的路径信息是不会保存的,因此需要通过执行该语句保证下次启动时仍然保存了环境变量。
(3)然后执行source ~/.bashrc,使用该语句更新环境配置。
(4)如果需要确认版本信息,可以执行mips64el-linux-gcc -v语句
![aa3f4f72159d1cb1b3f669fb55582658.png](https://i-blog.csdnimg.cn/blog_migrate/5f828745833c6dcdcbda01a622a4566f.jpeg)
下载Qt源码
使用Qt需要配合Qt Creator进行使用。Qt是一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立GUI(图形用户界面)所需的所用功能。Qt是完全面向对象的,很容易扩展,并且允许组件编程。
在Qt的官网网址: http://download.qt.io/archive/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.tar.gz
下载Qt 4.8.6的源码包后,在命令行输入
sudo tar -xvf qt-everywhere-opensource-src-4.8.6.tar.gz
完成源码包解压。
进入Qt的源码目录下,我们可以看到Qt的源码目录。
![8a3f901a1f6aa9ddb0db66d118b1ee9d.png](https://i-blog.csdnimg.cn/blog_migrate/d69d69a73b6f6fae06e201479f472f9f.png)
因为当前的Qt源码是一个通用版本,是不可以直接在龙芯平台使用的,需要对qmake文件进行修改。
qmake文件:qmake是用来为不同的平台和编译器书写Makefile的工具,是Qt库和Qt所提供工具的主要联编工具。
在Qt源码目录下,需要先修改文件mkspecs/qws/linux-mips-g++/qmake.conf,,如图所示。
![6dca8dab85f59ab88bc014551c4199c9.png](https://i-blog.csdnimg.cn/blog_migrate/5d0e1023ff7fe7f5e9f8c400a0eb1dca.jpeg)
选择需要的选项参数
Qt源码中包含通用的组件,部分组件是我们的应用中不需要的,因此需要在选项参数中进行增减。所有选项参数可以在终端执行sudo ./configure –help查看。
我们选择了以下几个选项参数:
![32fd0f6a66ae8811201f999d81791222.png](https://i-blog.csdnimg.cn/blog_migrate/575245b102e60d0bb0846bd8d480a729.jpeg)
选定选项参数后,在终端中的qt源码顶层目录执行命令
sudo ./configure -prefix /opt/Qt4.8mips -opensource -embedded mips -xplatform qws/linux-mips-g++ -no-webkit -qt-libtiff -qt-libmng -no-mouse-tslib -qt-mouse-pc -no-neon -little-endian -shared -qt-libpng -qt-libjpeg -qt-kbd-tty -qt-gfx-lin uxfb -system-sqlite
完成对选项参数的修改。
在调试中,如果出现报错重启的情况,我们之前执行的命令是不会保存的。可以把修改选项参数的命令做成一个脚本,如果需要重新配置,只需要执行脚本就可以了。
![c09d8f6000ffbcf4c0ecfb3ec7667e51.png](https://i-blog.csdnimg.cn/blog_migrate/ccc0569f08b5aa8091d9a64a69914f38.png)
图中的cmd.sh就是我们制作的脚本,打开后如下图所示:
![07068a601d6f6e83b70315341304f108.png](https://i-blog.csdnimg.cn/blog_migrate/cbe337ded74dda97cc2c6c840129f60b.png)
接下来就到了激动人心的编译环节了:)
第一千零一个人:在龙芯平台配置QT环境(下篇)zhuanlan.zhihu.com![aea8e83aa5fe64f3b430402d5ac92b19.png](https://i-blog.csdnimg.cn/blog_migrate/4f403fbfd106a1915a3994cdeac72158.jpeg)