前言
程序员朋友们相信对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中才能进行龙芯派开发环境的配置。具体的流程如下图所示:
下载安装龙芯派的交叉编译工具链
在安装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)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。
将解压好的工具链文件gcc-4.9.3-64-gnu添加到环境变量中,才能在之后编译Qt源码时,对工具链的调用位置准确无误。
(1)打开家目录(HOME)下的.bashrc
(2)将export PATH=$PATH:/opt/gcc-4.9.3-64-gnu/bin添加到最后一行。一般来说,在终端中执行的路径信息是不会保存的,因此需要通过执行该语句保证下次启动时仍然保存了环境变量。
(3)然后执行source ~/.bashrc,使用该语句更新环境配置。
(4)如果需要确认版本信息,可以执行mips64el-linux-gcc -v语句
下载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的源码目录。
因为当前的Qt源码是一个通用版本,是不可以直接在龙芯平台使用的,需要对qmake文件进行修改。
qmake文件:qmake是用来为不同的平台和编译器书写Makefile的工具,是Qt库和Qt所提供工具的主要联编工具。
在Qt源码目录下,需要先修改文件mkspecs/qws/linux-mips-g++/qmake.conf,,如图所示。
选择需要的选项参数
Qt源码中包含通用的组件,部分组件是我们的应用中不需要的,因此需要在选项参数中进行增减。所有选项参数可以在终端执行sudo ./configure –help查看。
我们选择了以下几个选项参数:
选定选项参数后,在终端中的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
完成对选项参数的修改。
在调试中,如果出现报错重启的情况,我们之前执行的命令是不会保存的。可以把修改选项参数的命令做成一个脚本,如果需要重新配置,只需要执行脚本就可以了。
图中的cmd.sh就是我们制作的脚本,打开后如下图所示: