当前位置:   article > 正文

Ubuntu18.04 搭建qt arm64编译环境_ubuntu arm64安装qt

ubuntu arm64安装qt

下载gcc-linaro-6.3.1

64位平台的编译器gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu.tar.xz操作如下:

tar -xvf gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu.tar.xz 
mv gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/* aarch64-linux-gnu-6.3.1
sudo cp -rf aarch64-linux-gnu-6.3.1/ /opt
  • 1
  • 2
  • 3
  • 修改环境变量 bash.bashrc:
vim /etc/bash.bashrc
  • 1
  添加如下行:
  • 1
PATH=$PATH:/opt/aarch64-linux-gnu-6.3.1/bin
  • 1
 添加完成后source生效一下:
  • 1
source /etc/bash.bashrc
  • 1

下载Qt5.12.3

  1. 下载链接:

https://download.qt.io/archive/qt/5.12/5.12.3/
image.png
国内下载源:
阿里:https://mirrors.aliyun.com/qt/
清华:https://mirrors.tuna.tsinghua.edu.cn/qt
北京理工大学:http://mirror.bit.edu.cn/qtproject/
中国互联网络信息中心:https://mirrors.cnnic.cn/qt/

  1. 添加安装权限:
sudo chmod u+x qt-opensource-linux-x64-5.12.3.run
  • 1
  1. 运行安装程序:
./qt-opensource-linux-x64-5.12.3.run
  • 1
  1. 按照安装程序进行安装即可,安装路径放在opt目录下,并确保安装路径为全英文
  2. 进入Qt安装目录 /opt/Qt5.12.3/5.12.3/Src(有些安转的路径是在**qt-everywhere-src-5.*.***中,根据自己的安装方式查找)
  3. 修改qmake.conf (/opt/Qt5.12.3/5.12.3/Src/qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf),可将qmake.conf备份一下。
#
# qmake configuration for building with aarch64-linux-gnu-g++
#

MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib

#添加以下
QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE += -O2 -march=armv8-a -lts
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a -lts

include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)

# modifications to g++.conf
# 修改以下
QMAKE_CC                = /opt/aarch64-linux-gnu-6.3.1/bin/aarch64-linux-gnu-gcc
QMAKE_CXX               = /opt/aarch64-linux-gnu-6.3.1/bin/aarch64-linux-gnu-g++
QMAKE_LINK              = /opt/aarch64-linux-gnu-6.3.1/bin/aarch64-linux-gnu-g++
QMAKE_LINK_SHLIB        = /opt/aarch64-linux-gnu-6.3.1/bin/aarch64-linux-gnu-g++

# modifications to linux.conf
# 修改以下
QMAKE_AR                = /opt/aarch64-linux-gnu-6.3.1/bin/aarch64-linux-gnu-ar cqs
QMAKE_OBJCOPY           = /opt/aarch64-linux-gnu-6.3.1/bin/aarch64-linux-gnu-objcopy
QMAKE_NM                = /opt/aarch64-linux-gnu-6.3.1/bin/aarch64-linux-gnu-nm -P
QMAKE_STRIP             = /opt/aarch64-linux-gnu-6.3.1/bin/aarch64-linux-gnu-strip
load(qt_config)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  1. 保存过后进入Src目录下(/opt/Qt5.12.3/5.12.3/Src),创建build文件夹
sudo mkdir build
  • 1
  1. 进入build文件夹下,创建build.sh(名称随意)
cd build
sudo touch build.sh
sudo chmod +x build.sh
  • 1
  • 2
  • 3
  1. 编辑build.sh文件,加入下面内容:
	../configure \
	-prefix /opt/qt-5.12.3-arm64/ \
	-opensource -confirm-license \
	-release \
	-strip \
	-shared \
	-xplatform linux-aarch64-gnu-g++ \
	-optimized-qmake \
	-c++std c++11 \
	--rpath=no \
	-pch \
	-skip qt3d \
	-skip qtactiveqt \
	-skip qtandroidextras \
	-skip qtcanvas3d \
	-skip qtconnectivity \
	-skip qtdatavis3d \
	-skip qtdoc \
	-skip qtgamepad \
	-skip qtlocation \
	-skip qtmacextras \
	-skip qtnetworkauth \
	-skip qtpurchasing \
	-skip qtremoteobjects \
	-skip qtscript \
	-skip qtscxml \
	-skip qtsensors \
	-skip qtspeech \
	-skip qtsvg \
	-skip qttools \
	-skip qttranslations \
	-skip qtwayland \
	-skip qtwebengine \
	-skip qtwebview \
	-skip qtwinextras \
	-skip qtx11extras \
	-skip qtxmlpatterns \
	-make libs \
	-make examples \
	-nomake tools -nomake tests \
	-gui \
	-widgets \
	-dbus-runtime \
	--glib=no \
	--iconv=no \
	--pcre=qt \
	--zlib=qt \
	-no-openssl \
	--freetype=qt \
	--harfbuzz=qt \
	-no-opengl \
	-linuxfb \
	--xcb=no \
	--libpng=qt \
	--libjpeg=qt \
	--sqlite=qt \
	-plugin-sql-sqlite \
	-recheck-all
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  1. 执行build.sh创建Makefile进行编译,在编译完成后执行 make install 会将qt库安装到 -prefix 指定的目录下。
./build.sh
make
sudo make install
  • 1
  • 2
  • 3

配置Qt交叉编译环境

  1. 打开Qt5.12.3,以及需要编译的项目

image.png

  1. 配置其aarch64位编译器,在Compilers中点击Add我们之前安装并配置好的交叉编译链GCC,配置路径,名称要区别开;

路径:

  • C++: /opt/aarch64-linux-gnu-6.3.1/bin/aarch64-linux-gnu-g++
  • C: /opt/aarch64-linux-gnu-6.3.1/bin/aarch64-linux-gnu-gcc

image.png
image.png

  1. 在Qt Versions里面配置已经编译好的qmake,位置在opt下面;

路径:/opt/qt-5.12.3-arm64/bin/qmake
image.png

  1. 在Debuggers中添加GDB

路径: /opt/aarch64-linux-gnu-6.3.1/bin/aarch64-linux-gnu-gdb
image.png

  1. 添加Kit,配置如下图所示,Name可以自定义(构建套件会显示黄色警告:未配置设备,不影响构建)

image.png

  1. 点击ok之后在Projects里点击刚配置好的Kits,然后选择我们的环境,选择Release模式,点击build即可

image.png

  1. Build之后显示绿色已经build成功

image.png

  1. 点击进去之后看到有一个可执行文件即可,拷贝到板子上就可以用了,根据不同的程序需要特殊的全局变量的设置,相关库lib的放置等,需要在home下.bashrc文件里添加,并且使用source生效即可
./ballancedBicycle
  • 1

image.png
如:拷贝在其他的ARM系统上运行时,报错:

error while loading shared libraries: libQt5SerialPort.so.5:cannot open shared object file: no such file or directory
  • 1

则说明缺少串口通信库,可以在系统终端运行指令:

sudo apt-get install libqt5serialport5
  • 1

检查库文件的存在:安装完成后,您可以使用locate命令来检查libQt5SerialPort.so.5文件是否真的存在于您的系统中。如果您的系统没有locate,您可以使用findls命令。
确保正确的环境变量:有时,库文件的路径可能不在系统的默认库路径中。您可以通过设置LD_LIBRARY_PATH环境变量来指定额外的库路径。例如:

export LD_LIBRARY_PATH=/path/to/library:
  • 1

这里的**/path/to/library应该替换为包含libQt5SerialPort.so.5**的实际路径
最后source一下bashrc文件,再重新运行拷贝的可执行文件

source ~/.bashrc
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/943175
推荐阅读
相关标签
  

闽ICP备14008679号