1.下載arm交叉編譯程序
- 源碼下載地址:Downloads | GNU-A Downloads – Arm Developer
要根據(jù)目標(biāo)系統(tǒng)選擇編譯器版本,我的主板:
aarch64bit體系結(jié)構(gòu)(arm 64bit),linux內(nèi)核GNU操作系統(tǒng)=GNU/Linux操作系統(tǒng)(簡(jiǎn)稱linux)
大端模式(Big-endian),是指數(shù)據(jù)的高字節(jié),保存在內(nèi)存的低地址中,而數(shù)據(jù)的低字節(jié),保存在內(nèi)存的高地址中。
小端模式(Little-endian),是指數(shù)據(jù)的高字節(jié)保存在內(nèi)存的高地址中,而數(shù)據(jù)的低字節(jié)保存在內(nèi)存的低地址中。
經(jīng)過(guò)網(wǎng)上分享的代碼測(cè)試發(fā)現(xiàn)我的是小端。
(在我對(duì)操作系統(tǒng)及內(nèi)核不了解的情況下寫(xiě)的是arm64位小端)
所以選擇圖中位置
(aarch64-none-linux-gnu):arm64位 linux裸機(jī)
(aarch64-none-linux-gnu):arm64位 linux小端
(aarch64_be-none-linux-gnu):arm64位 linux大端
??
- ?解壓文件
tar -xvf gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.xz
- 拷貝文件到合適的位置(我的位置: /opt/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu)
- 目錄內(nèi)容如下
??
?該內(nèi)容用于配置qt內(nèi)部的qmake.conf文件
?2.編譯arm的qt項(xiàng)目源碼
- qt源碼下載路徑:https://download.qt.io/archive/qt/5.12/5.12.12/single/
- 解壓文件
tar -xvf qt-everywhere-src-5.12.12.tar.xz
- 拷貝文件到合適的位置(我的位置:/home/huhu/third_part/qt-everywhere-src-5.12.12? ? /opt/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu)
- 進(jìn)入/home/huhu/third_part/qt-everywhere-src-5.12.12/qtbase/mkspecs目錄下找到linux-aarch64-gnu-g++ 拷貝到linux-none-aarch64-gnu-g++:
cp -r?linux-aarch64-gnu-g++?linux-none-aarch64-gnu-g++
- 進(jìn)入拷貝后的linux-none-aarch64-gnu-g++文件夾編輯qmake.conf文件結(jié)果如下:
#
# qmake configuration for building with aarch64-none-linux-gnu-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 = aarch64-none-linux-gnu-gcc
QMAKE_CXX = aarch64-none-linux-gnu-g++
QMAKE_LINK = aarch64-none-linux-gnu-g++
QMAKE_LINK_SHLIB = aarch64-none-linux-gnu-g++
# modifications to linux.conf
QMAKE_AR = aarch64-none-linux-gnu-ar cqs
QMAKE_OBJCOPY = aarch64-none-linux-gnu-objcopy
QMAKE_NM = aarch64-none-linux-gnu-nm -P
QMAKE_STRIP = aarch64-none-linux-gnu-strip
load(qt_config)
以上內(nèi)容取決于交叉編譯軟件( /opt/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin)文件夾下程序名
- 創(chuàng)建編譯輸出文件夾,并增加權(quán)限
mkdir arm-qt
chmod +x arm-qt/
- 執(zhí)行configure生成Makefile文件,命令如下:
./configure -opensource -prefix /home/huhu/third_part/qt-everywhere-src-5.12.12/arm-qt -xplatform linux-none-aarch64-gnu-g++ -release -no-cups -qt-zlib -qt-libjpeg -qt-libpng -no-openssl -no-pch -confirm-license -no-opengl
-prefix :編譯完成文件輸出目錄
-xplatform:編譯平臺(tái)(/home/huhu/third_part/qt-everywhere-src-5.12.12/qtbase/mkspecs目錄下新修改的qmake.conf所在的文件夾名稱)
?看到下圖內(nèi)容表示Makefile文件生成成功
- 執(zhí)行編譯:
- make
- make install
3.qt安裝與qtcreator交叉編譯配置:
- 下載路徑:Index of /archive/qt/5.14/5.14.1
- 修改權(quán)限
sudo chmod 777 qt-opensource-linux-x64-5.14.1.run
- 執(zhí)行安裝
./qt-opensource-linux-x64-5.14.1.run
安裝過(guò)程參考:嵌入式Linux下的Qt Creator環(huán)境搭建_安迪西的博客-CSDN博客_qt creator linux
我構(gòu)建成功的文件名為button_test,在路徑/home/huhu/third_part/qt_project/build-button_test-arm_linux-Debug下
?
?4.?測(cè)試
啟動(dòng)arm主板,使用ifconfig獲得主板ip地址,使用scp 將構(gòu)建好的項(xiàng)目發(fā)送到arm主板上
scp 要傳輸?shù)奈募刂?用戶名@ip地址:目標(biāo)地址
scp ./button_test huhuarm@192.168.2.10:/home/huhuarm/Desktop/
傳輸成功后在arm上雙擊button_test文件運(yùn)行,完成
問(wèn)題1:
??
?解決辦法:安裝build 的組件
sudo apt-get install build-essential
問(wèn)題2:
??
?因?yàn)槲覜](méi)有編譯opengl模塊,所以編譯命令增加-no-opengl 參數(shù)
問(wèn)題6:
?文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-423364.html
原因是ubuntu20.04默認(rèn)安裝了python3,所以需要給python創(chuàng)建一個(gè)軟連接到python,這樣命令行使用python才能成功調(diào)用到python3文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-423364.html
sudo ln -s /usr/bin/python3 /usr/bin/python
到了這里,關(guān)于ubuntu20.04搭建arm交叉編譯環(huán)境的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!