QT如何配置交叉編譯工具?
來源:木南創(chuàng)智
整理:李肖遙
1. 交叉編譯工具安裝 (glibc版本需要和開發(fā)板上的版本相兼容)
方法1:
(安裝的為最新版的glibc ,舊版glibc需要自行下載對應(yīng)的交叉編譯工具鏈)
sudo apt-get install gcc-arm-linux-gnueabihf
sudo apt-get install g++-arm-linux-gnueabihf
sudo apt install gcc-aarch64-linux-gnu
sudo apt install g++-aarch64-linux-gnu
1234
方法2:
從ARM官網(wǎng)下載交叉編譯工具,解壓后,配置全局變量
ARM交叉編譯器:https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads
glibc版本問題見:https://blog.csdn.net/qq_38770597/article/details/122853858?spm=1001.2014.3001.5501
2. arm版本的qmake編譯安裝
創(chuàng)建arm版本qmake的文件夾,這里我選擇放在qt安裝路徑下,文件夾為arm_64_build,qt版本為5.12.2,x86版本的qmake的文件夾為5.12.2

進(jìn)入到arm_64_build文件夾下
%生成配置文件 qtbase/bin/qt.conf 文件
sudo ../5.12.2/Src/configure -prefix $PWD/qtbase -opensource -xplatform linux-aarch64-gnu-g++ -no-opengl -nomake examples
%編譯生成arm版本的qmake,時(shí)間較漫長
sudo make
%安裝,安裝的路徑為qtbase/bin下
sudo make install
123456
在make時(shí)遇到的問題
error: ‘SIOCGSTAMP’ undeclared (first use in this function); did you mean ‘SIOCGARP’?
解決:在5.12.2中找到socketcanbackend.cpp文件,添加頭文件#include <linux/sockios.h>
python: not found %ubuntu內(nèi)安裝的python名字默認(rèn)是python3 ,將 python3 鏈接到 python
解決:sudo ln -s /usr/bin/python3 /usr/bin/python
make過程中可能報(bào)一些奇怪的錯(cuò)誤,常見為
root權(quán)限下全局變量已配置且可用,但sudo執(zhí)行時(shí)仍找不到編譯器,切換到root權(quán)限下 去掉sudo 直接運(yùn)行
make編譯過程中提示版本不匹配,確認(rèn)交叉編譯工具無誤重新make幾次,當(dāng)切換交叉編譯工具版本,重新make時(shí)需要將舊的文件全部刪除,重新生成配置文件,再運(yùn)行make
安裝時(shí)提示qt4 無法安裝,不影響,可以直接忽視,如在Qt工程編譯時(shí)報(bào)錯(cuò),重新運(yùn)行make 并安裝即可
qmake 的版本和交叉編譯工具鏈的 版本需要對應(yīng),由于glibc版本不同,會報(bào)錯(cuò)找不到對應(yīng)的庫文件

對應(yīng)的qmake可執(zhí)行文件在 qt_base/bin/路徑下
3. qt配置
打開Qt ,工具->選項(xiàng)

Kits選項(xiàng)內(nèi) 進(jìn)行配置
編譯器配置:
使用apt_get安裝的交叉編譯工具,可以使用qt默認(rèn)的編譯器配置,不需要重新配置

不是apt-get 安裝時(shí),交叉編譯器的路徑和qt默認(rèn)的編譯器路徑不一致,需要手動添加

Qt Versions選項(xiàng)下添加一個(gè)新的,選擇對應(yīng)的qmake路徑

添加一個(gè)新的構(gòu)建套件,選擇設(shè)備類型,選擇編譯器,選擇qt版本,這里qt版本和編譯器版本需要一致

在工程中添加arm版本的構(gòu)建套件,編譯成功

參考:
https://www.cnblogs.com/zhichengliu/p/15001507.html
版權(quán)聲明:本文來源網(wǎng)絡(luò),免費(fèi)傳達(dá)知識,版權(quán)歸原作者所有。如涉及作品版權(quán)問題,請聯(lián)系我進(jìn)行刪除。
???????????????? END ???????????????
關(guān)注我的微信公眾號,回復(fù)“加群”按規(guī)則加入技術(shù)交流群。
點(diǎn)擊“閱讀原文”查看更多分享,歡迎點(diǎn)分享、收藏、點(diǎn)贊、在看。
