1、主機交叉QMake生成
已驗證的環境:Ubuntu18.04 + Qt5.12.1
Qt5.12.1 :
, 下載前置軟件包:
gcc-aarch64-linux-gnusudo, g++-aarch64-linux-gnu : ARM64的C與C++的交叉編譯器
sudo apt install gcc-aarch64-linux-gnusudo g++-aarch64-linux-gnu
模板:
執行configure(qt-everywhere-src-5.12.1/configure),生成Makefile
編譯&安裝
sudo make && make install
/!\ 路徑英文,su權限
主要對象qmake生成:
2、主機QtCreator配置
使用官網的.run文件或apt來安裝,使用同一版本號,或相近版本號,若有問題則遍歷其他版本更換
2.1 指定gcc與g++:指定apt安裝的編譯工具
2.2 指定qmake:指定編譯好的qmake(編譯好的路徑下/bin/qmake)
3、目標機運行環境
3.1 安裝Qt運行環境
apt安裝 (待驗證)
apt install qt5-default
3.2 配置通過ssh運行X圖形軟件
【1】 編輯 /etc/ssh/sshd_config
啟用AllowTcpForwarding
啟用X11Forwarding
將X11DisplayOffset設定為10
啟用X11UseLocalHost
【2】 配置環境變量 /etc/profile
export DISPLAY=":0.0"
export XAUTHORITY="/home/用戶名/.Xauthority"
3.3 Qt配置目標機設備
建議root登錄,免得各種權限拒絕
4、GDB調試
4.1目標機安裝gdbserver(選擇源碼編譯或下載現成的)
4.1.1:獲得GDB Server
方法一:GDB源碼安裝(
),只編譯GDBServer方法二:下載現成的 GDB8.1版本
鏈接:https://pan.baidu.com/s/1N_xc6chaKxy3_Mn64XwDmA
提取碼:16se
4.1.2 安裝GDB
把文件夾bin里的文件放到/usr/bin,並作軟連接gdbserver(指向aarch64-linux-gnu-gdbserver): ln -d aarch64-linux-gnu-gdbserver gdbserver
文件夾lib里文件放到/usr/lib
4.2 目標機設置允許root登錄
sudo service sshd restart 重啟服務
4.3 主機安裝gdb-multiarch
sudo apt install gdb-multiarch,並在Qt中指定
4.4 配置運行變量
上述兩個目標板子上的環境變量 DISPLAY 和 XAUTHORITY,板子一般是沒有的,要自己添加上去,否則運行不起來
或者直接手動在Qt里面添加固定的,這樣就不用每次啟動去獲取板子的系統變量了:
通過/etc/profile 加入 export來添加
正確調試圖:
過程筆記
1、Deepin(深度) Qt5.12.1 執行configure 會報 ERROR: C++11 <random> is required and is missing or failed to compile,沒有找到有效方法
2、Qt5.14.2:執行configure時,大多指令都變得不可使用(如-prefix -xplatform等)
3、Qt5.14.1、Qt5.14.0、Qt5.15.0:執行make時報openglextension找不到模塊的錯誤,無法繼續
4、PC環境提示 GL/gl.h:No such file. : apt install libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev
5、錯誤提示 /usr/lib/qt5.12.1-arm64/lib/libQt5Core.so: undefined reference to `getentropy@GLIBC_2.25' : glibc的庫版本不對,要安裝 glibc >>>
指定的編譯工具與安裝時指定的編譯工具不一致
6、運行時缺少l ibqt5serialport 庫:使用apt search libqt5serialport 找到具體的安裝包,並安裝
<<<