文章目录
一、需要准备的材料
二、操作步骤
1.更新软件源
2.安装环境依赖
3.搭建交叉编译环境
4.编译QT
5.安装Qt creator
6.配置Qt kit
三.测试
前言
本文使用VMware虚拟机作为Ubuntu系统载体,采用Ubuntu18.04-64位镜像作为QT编译环境,采用RK3288搭载Ubuntu18.04-arm-32作为QT执行环境。
一、需要准备的材料
① 交叉编译器:gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz
git:工具包: 一些常用的工具,你可以在这里找到
②qt-everywhere-src-5.9.5.tar.xz(QT源码)
网站:Index of /archive/qt/5.9/5.9.5/single
③qt-opensource-linux-x64-5.9.5.run(QT开发工具)
网站:Index of /archive/qt/5.9/5.9.5
二、操作步骤
1.更新软件源
2.安装环境依赖
sudo apt-get install repo git-core gitk git-gui gcc-arm-linux-gnueabihf u-boot-tools -y
sudo apt-get install device-tree-compiler gcc-aarch64-linux-gnu mtools parted -y
sudo apt-get install libudev-dev libusb-1.0-0-dev python-linaro-image-tools -y
sudo apt-get install linaro-image-tools autoconf autotools-dev libsigsegv2 m4 -y
sudo apt-get install intltool libdrm-dev curl sed make binutils build-essential gcc -y
sudo apt-get install g++ bash patch gzip bzip2 perl tar cpio python unzip rsync flex -y
sudo apt-get install bc wget libncurses5 libqt4-dev libglib2.0-dev libgtk2.0-dev -y
sudo apt-get install libglade2-dev cvs git mercurial rsync openssh-client subversi -y
sudo apt-get install asciidoc w3m dblatex graphviz python-matplotlib libc6:i386 -y
sudo apt-get install libssl-dev texinfo genext2fs -y
sudo apt-get install lib32stdc++6 -y
sudo apt-get install g++-arm-linux-gnueabihf -y
sudo apt-get install liblz4-tool lib32gcc-7-dev g++-7 libstdc++-7-dev -y
3.搭建交叉编译环境
①在/opt路径下创建gcc-arm-6.3.1文件夹来存放交叉编译器
cd /opt
sudo mkdir gcc-arm-6.3.1
②在交叉编译器存放的地方打开终端,将编译器复制到/opt/gcc-arm-6.3.1
mv gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz /opt/gcc-arm-6.3.1
③在/opt/gcc-arm-6.3.1路径下进行解压
cd /opt/gcc-arm-6.3.1
sudo tar -xvf gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz
④解压完成后会自动创建gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf文件夹,将此文件夹中的bin添加至.bashrc中。
在/home/XXX 下打开终端(XXX为你自己的用户)
vim .bashrc
按i,进入插入模式,在底部添加:export PATH=/opt/gcc-arm-6.3.1/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin:$PATH
更新环境变量
source .bashrc
查看是否生效:
arm-linux-gnueabihf-g++ -v
如果可以查到,就代表安装成功。
4.编译QT
①在默认用户路径(/home/XXX)下解压QT源码
sudo tar -xvf qt-everywhere-src-5.9.5.tar.xz
②修改qmake配置文件,路径在/home/XXX/qt-everywhere-src-5.9.5/qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
cd /home/XXX/qt-everywhere-src-5.9.5/qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
vim 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/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
QMAKE_CXX = /opt/gcc-arm-6.3.1/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
QMAKE_LINK = /opt/gcc-arm-6.3.1/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
QMAKE_LINK_SHLIB = /opt/gcc-arm-6.3.1/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
# modifications to linux.conf
QMAKE_AR = /opt/gcc-arm-6.3.1/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY = /opt/gcc-arm-6.3.1/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-objcopy
QMAKE_NM = /opt/gcc-arm-6.3.1/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-nm -P
QMAKE_STRIP = /opt/gcc-arm-6.3.1/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip
load(qt_config)
③编译,/usr/local/qt-arm/QtEmbedded-6.3.1-arm 代表安装路径,文件夹需要提前创建出来
cd /usr/local
sudo mkdir qt-arm
cd qt-arm
sudo mkdir QtEmbedded-6.3.1-arm
在/home/XXX/qt-everywhere-opensource-src-5.9.5 路径下执行以下命令。
./configure -prefix /usr/local/qt-arm/QtEmbedded-6.3.1-arm -confirm-license -opensource -release -make libs -xplatform linux-arm-gnueabi-g++ -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
出现这个画面代表成功,可以进行下一步
make -j4 && sudo make install
此步骤花费时间较长请耐心等待。
出现这个画面代表成功
④导入环境变量,步骤和上面相同,导入完成后记得source下。
export QTDIR=/usr/local/qt-arm/QtEmbedded-6.3.1-arm
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
输入
qmake -version
如果能查到版本则代表成功。
5.安装Qt creator
①建立qtcreator的安装目录
cd /opt
sudo mkdir Qt5.9.5
②运行安装包
sudo chmod 777 qt-opensource-linux-x64-5.9.5.run
sudo ./qt-opensource-linux-x64-5.9.5.run
安装路径选择/opt/Qt5.9.5,按照下图勾选。
③安装完成后,导入环境变量,方法和上面一样,记得导完后source下。
export PATH=/opt/Qt5.12.11/Tools/QtCreator/bin:$PATH
export PATH=/opt/Qt5.12.11/5.12.11/gcc_64/bin:$PATH
安装完成后就在菜单中找到Qt creator了。
6.配置Qt kit
①打开Qt creator,在菜单中选中tool下的option
②点击Build&Run,选中compilers,选中Manual,分别添加C和C++,点击Add->GCC->C和C++,name自己取,路径选择
/opt/gcc-arm-6.3.1/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc(C的路径)
/opt/gcc-arm-6.3.1/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++(C++的路径)
ABI选择arm-liunx,配置好后,点Apply。
③配置Qt Version,如果前面步骤没错的,会自己配置好,如果没配置好,按照图中路径选取qmake,完成后点Apply。
④添加Kits,选中Manual点Add,名字自取,其他选中如同所示。
注:感叹号不影响。
三.测试
测试使用的是QT开源社区提供的开源串口工具。
下载地址:qcom-1.1.tar.gz_免费高速下载|百度网盘-分享无限制 (baidu.com)
在ubuntu-64位下能成功编译并运行,切换ARM-32后,点Rebuild All,注意不要点Run。
在项目文件夹中可以找到编译好的应用程序
用file qcom可以查看应用程序版本和所依赖的库,如图可知已经编译为ARM-32位,注意运行应用程序需要目标机器中有相关的库。
将文件夹移至基于RK3288的Ubuntu18.04-arm-32系统中,如图所示可以运行。文章来源:https://www.toymoban.com/news/detail-583678.html
参考博客:(21条消息) ubuntu18.04 安装Qt交叉编译环境目标机为rk3288_风一样的航哥的博客-CSDN博客_gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu文章来源地址https://www.toymoban.com/news/detail-583678.html
到了这里,关于Qt5.9 Ubuntu18.04-64位交叉编译目标机为Ubuntu18.04-arm-32位基于RK3288的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!