Ubuntu16.04下配置rk3288的qt编译环境

一.准备文件
a)QT5源码:qt-everywhere-opensource-src-5.12.2.tar.gz
http://download.qt.io/archive/qt/5.12/5.12.2/single/
b)Arm交叉编译工具:gcc_for_rk3288_kernel.tgz,来自于sdk文档
c)qtcreator环境下载:qt-opensource-linux-x64-5.12.2.run
https://download.qt.io/archive/qt/5.12/5.12.2/,与移植的qt版本一致!
具体进入arm rk3288查看下qt的lib版本,再下载qt的版本,一定对应一致。
如://libQt5Gui.so.5.12.2
二.安装库文件

$ sudo apt-get install repo git-core gitk git-gui gcc-arm-linux-gnueabihf u-boot-tools 
$ sudo apt-get install device-tree-compiler gcc-aarch64-linux-gnu mtools parted 
$sudo apt-get install libudev-dev libusb-1.0-0-dev python-linaro-image-tools 
$ sudo apt-get install linaro-image-tools autoconf autotools-dev libsigsegv2 m4 
$ sudo apt-get install intltool libdrm-dev curl sed make binutils build-essential gcc 
$ sudo apt-get install g++ bash patch gzip bzip2 perl tar cpio python unzip rsync flex 
$ sudo apt-get install bc wget libncurses5 libqt4-dev libglib2.0-dev libgtk2.0-dev 
$ sudo apt-get install libglade2-dev cvs git mercurial rsync openssh-client subversion 
$ sudo apt-get install asciidoc w3m dblatex graphviz python-matplotlib libc6:i386 
$ sudo apt-get install libssl-dev texinfo genext2fs
$ sudo apt-get install lib32stdc++6
$ sudo apt-get install g++-arm-linux-gnueabihf
$sudo apt-get install gcc-arm-linux-gnueabihf

如果是rk3399,还需要安装
sudo apt-get install g++-aarch64-linux-gnu
sudo apt-get install gcc-aarch64-linux-gnu
如果使用 ubuntu 18.04,还需要安装
$ sudo apt-get install liblz4-tool lib32gcc-7-dev g++-7 libstdc++-7-dev

三、搭建arm交叉编译环境
1.rk3288的交叉编译工具
tar -xvzf gcc_for_rk3288_kernel.tgz# 解压后生成 prebuilts 目录

Cd opt 
mkdir gcc-arm-6.3.1/

然后拷贝解压文件到opt/gcc-arm-6.3.1/文件夹下,解压出来的文件夹层数比较多,可以自行选择层数,我的路径如下:
Ubuntu16.04下配置rk3288的qt编译环境_第1张图片
然后添加环境变量,

sudo vi /root/.bashrc 或者 sudo gedit /root/.bashrc 

在这里插入图片描述

sudo source /root/.bashrc

而后,查看gcc,g++编译器版本,查到即成功。
2.解压 qt 源码

tar -xvf qt-everywhere-src-5.12.2.tar.xz # 解压后生成 qt-everywhere-src-5.12.2 

3. 进入qt源码的如下目录并新建文件夹,为当前平台的标识名称,如

cd qt-everywhere-src-5.12.2/qtbase/mkspecs
mkdir linux-rockchip 
或者
cd qt-everywhere-src-5.12.2/qtbase/mkspecs && mkdir linux-rockchip

4. 进入新建文件夹创建两个文件

cd linux-rockchip 
touch qmake.conf # 配置交叉编译工具的文件 
touch qplatformdefs.h

5.编辑 Vi qmake.conf

#
# qmake configuration for building with arm-linux-gnueabi-g++ 
#
MAKEFILE_GENERATOR = UNIX 
CONFIG += incremental 
QMAKE_INCREMENTAL_STYLE = sublib 

include(../common/linux.conf) 
include(../common/gcc-base-unix.conf) 
include(../common/g++-unix.conf) 
# modifications to g++.conf,如果没有配置环境变量,这里一定要为绝对路径 
#注:我配置了环境变量,不用绝对路径不行,不知道哪错了。
QMAKE_CC =/opt/gcc-arm-6.3.1/***/****/bin/****-gcc
QMAKE_CXX = /opt/gcc-arm-6.3.1/***/****/bin/****-g++
QMAKE_LINK =/opt/gcc-arm-6.3.1/***/****/bin/****-g++
QMAKE_LINK_SHLIB=/opt/gcc-arm-6.3.1/***/****/bin/****-g++
# modifications to linux.conf,如果没有配置环境变量,这里一定要为绝对路径 
QMAKE_AR = /opt/gcc-arm-6.3.1/***/****/bin/***-linux-gnu-ar cqs 
QMAKE_OBJCOPY =  /opt/gcc-arm-6.3.1/***/****/bin/***-linux-gnu-objcopy 
QMAKE_NM =  /opt/gcc-arm-6.3.1/***/****/bin/***-linux-gnu-nm -P 
QMAKE_STRIP =  /opt/gcc-arm-6.3.1/***/****/bin/***-linux-gnu-strip 
load(qt_config)

如果是rk3399,交叉编译过程相似,只是在.编辑 Vi qmake.conf这个文件中,要用64位的aarch64-linux-gnu-gcc和g++,如图所示。

#modifications to g++.conf,如果没有配置环境变量,这里一定要为绝对路径 
QMAKE_CC = /home/.../bin/aarch64-linux-gnu-gcc 
QMAKE_CXX = /home/.../aarch64-linux-gnu-g++
QMAKE_LINK = /home/.../aarch64-linux-gnu-g++ 
QMAKE_LINK_SHLIB = /home/.../aarch64-linux-gnu-g++
#modifications to linux.conf,如果没有配置环境变量,这里一定要为绝对路径 
QMAKE_AR = /home/.../aarch64-linux-gnu-ar cqs 
QMAKE_OBJCOPY = /home/.../aarch64-linux-gnu-objcopy 
QMAKE_NM = /home/.../aarch64-linux-gnu-nm -P
QMAKE_STRIP = /home/.../aarch64-linux-gnu-strip
load(qt_config)

6.打开 qplatformdefs.h

#include "../linux-g++/qplatformdefs.h" 

到这里就配置好了交叉编译工具了
7.建立qt源码安装路径
Cd /usr/local
Mkdir qt-arm
Cd qt-arm
Mkdir QtEmbedded-6.3.1-arm

8.编译选项和平台配置
回到源码根目录,然后准备配置编译项,配置基本可以复制如下指令进行配置,需要注意的是参数-xplatform linux-rockchip。
./configure -prefix /usr/localqt-arm/QtEmbedded-6.3.1-arm
-confirm-license
-opensource
-release
-make libs
-xplatform linux-rockchip
-pch -qt-libjpeg -qt-libpng -qt-zlib -no-opengl
-no-sse2 -no-openssl -no-cups -no-glib
-dbus -no-xcb -no-separate-debug-info -no-iconv
完成配置后,出现如下界面然后可以编译qt源码。
Ubuntu16.04下配置rk3288的qt编译环境_第2张图片

9.然后,make -j4 && sudo make install ,完成QT源码编译安装。
Ubuntu16.04下配置rk3288的qt编译环境_第3张图片

10.添加环境变量,vi /root/.bashrc或者 sudo gedit /root/.bashrc,如图所示。
在这里插入图片描述

而后,执行sudo source /root/.bashrc
查看qmake版本, qmake -version,显示版本,OK。
可以移植到arm开发板上。
四、QtCreator 配置
进入qt-opensource-linux-x64-5.12.2.run所在的文件夹,然后在当前目录直接执行命令,用 sudo 表示是当前用户 ,执行安装 qt-opensource-linux-x64-5.12.2.run,然后按提示输入用户密码。
先修改该文件的权限,下面为 qt-opensource-linux-x64-5.12.2.run添加可执行权限,再执行安装。

Ubuntu# chmod +x qt-opensource-linux-x64-5.12.2.run 
Ubuntu# sudo ./qt-opensource-linux-x64-5.12.2.run
Ubuntu# Cd opt
Mkdir Qt5.12.2

建立qtcreator的安装目录。
选择安装目录后,一直下一步,出现的窗口是选择组件,可根据个人所需要的组件酌情选择,但尽量除了安卓的都选,点击下一步。
出现一个询问许可协议的窗口,选择第一项已同意并阅读条款。再点击下一步。到了已做好安装准备这一步,直接单击安装即可。
Ubuntu16.04下配置rk3288的qt编译环境_第4张图片

到此 Qt 已经准备好安装了。
添加环境变量,vi /root/.bashrc,
在这里插入图片描述
source /root/.bashrc,然后在用户名下,输入qtcreator,既可以启动qtcreator。
或者在终端输入
/opt/Qt5.12.2/5.12.2/QtCreator/bin/qtcreator &
这句可以保存下来,复制、粘贴即可。

五.搭建 Qt Creator 交叉编译环境
进入ubuntu后,输入 sudo su
输入密码,
然后,再输入qtcreator,打开工程即可。

找到qt的Tools,打开Options
Ubuntu16.04下配置rk3288的qt编译环境_第5张图片
Ubuntu16.04下配置rk3288的qt编译环境_第6张图片
然后,Manual, Add G++,只是将刚刚的GCC中的gcc改选为g++的那个。
下一步,Qt Versions,Ubuntu16.04下配置rk3288的qt编译环境_第7张图片
Ubuntu16.04下配置rk3288的qt编译环境_第8张图片
Ubuntu16.04下配置rk3288的qt编译环境_第9张图片
就可以生成32位arm执行程序了,然后去rk3288开发板上运行。

你可能感兴趣的:(ubuntu,arm,qt,arm开发,linux)