前言
所謂的跨平臺qt5遠程編譯環境,就是實現在本機的VS上寫Qt程序,然后在遠程的linux機器上進行編譯,得到Qt的Gui或非GUI程序。
跟交叉編譯比起來,遠程編譯不需要進行復雜的交叉編譯工具配置;由于是自機編譯,也不會存在開發工具版本匹配問題,穩定性高于交叉編譯;遠程編譯的缺點也比較突出:目標機需要安裝完整的開發工具,編譯速度會受到目標機性能的嚴重限制。
簡言之,對于一些裝了Linux,但是性能有限、缺少相應開發文檔、交叉編譯存在風險的機器/開發板,比如說來源不明的x86工控機、Orange/Banana Pi 這類仿照樹莓派的開發板,推薦通過遠程編譯的方式進行開發部署。
對于樹莓派、Tinker Board之類的開發板,VisualGDB提供了經測試的交叉編譯工具、直接使用即可。
測試環境
開發環境:電腦(Win10 21H2,x64)+VS2019+VisualGDB5.6+Qt5.11, VS安裝了Qt插件
目標環境:80收的工控機,處理器為Atom D2550, 已經安裝64位Debian11(帶GNOME圖形)。[關在上海兩個月了,條件艱苦,只能找到這么一臺機器了,唉]
一、目標機準備
1.開啟ssh并允許root登錄
VisualGDB在之后調試的時候如果用sudo的方式調試比較容易報錯,最好直接用root連接。
目標機上:
nano /etc/ssh/sshd_config
用vim也可以,個人覺得nano比vim方便多了。修改以下項:
PermitRootLogin yes #允許root登錄
PermitEmptyPasswords no #不允許空密碼登錄
PasswordAuthentication yes # 設置是否使用口令驗證。
X11Forwarding yes #啟用遠程圖形支持
重啟一下ssh服務
/etc/init.d/sshd retart
再測試一下用root連接目標機。root登錄有風險,以后機子要聯網使用的時候記得關
2.允許通過root登錄桌面
目標機上:
nano /etc/gdm3/daemon.conf
在 [security] 下添加 AllowRoot=True,保存退出。
nano /etc/pam.d/gdm-password
把auth required pam_succeed_if.so user != root quiet_success這行注釋掉。
保存退出,reboot一下機器,登錄的時候就可以用root賬戶了。
3.安裝編譯環境
①檢查一下sources.list,換一個靠譜點的鏡像源
②apt upgrade一下。
③安裝編譯工具:
apt install cmake
apt install build-essential
④qt5的開發工具:
apt install qt5-qmake
apt install qtbase5-dev
apt install qtdeclarative5-dev
apt install qtwebengine5-dev
apt install qml-module-qt-labs-platform
其他qt模塊可以在需要使用的時候按需安裝:
qtconnectivity5-dev qtmobility-dev qttools5-dev tmultimedia5-dev libqt5opengl5-dev qtpositioning5-dev tscript5-dev libqt5sensors5-dev libqt5serialport5-dev libqt5svg5-dev libqt5webkit5-dev libqt5x11extras5-dev libqt5xmlpatterns5-dev
qtcreator在目標機上不需要,不用安裝。
⑤檢查安裝
qmake --version 檢查一下qt版本:
二、VS+VisualGDB創建項目
①VS創建項目界面選擇Linux Project Wizard:
②Project Type選擇:
③連接目標機:
④接下來是源文件的存儲方式,這里提供存儲在開發用的電腦(Windows)和存儲在目標機上兩種選項:
VisualGDB推薦的方式是把文件存在目標機上,通過SSH取過來。但在開發GUI時會使用qtdesigner讀取.ui文件,實際使用時很容易出現同步錯誤的情況,個人推薦還是本地存儲,編譯時再上傳到目標機,配置方法:
注意:同步文件類型默認沒有txt類型,需要手動加上。如果不加就會導致CMakelists.txt無法同步,導致報錯。
⑤選擇目標機上IncludeDir:
※目標機編譯需包含的內容,也可以之后補充:
⑥完成項目創建
默認創建的項目是帶ui的,不過可以比較方便地修改成console程序。
⑦運行結果:
三、項目高級設置/工具
可右鍵項目打開VisualGDB屬性配置項目的高級選項,推薦探索熟悉一下。
在調試選項中:
可以看到默認Console輸出是連接到開發電腦的,GUI也是通過X Window輸出在開發電腦上(如果沒有安裝Xterm或XMing時VisualGDB會自動下載安裝,很方便)。
但我們在開發一些系統的時候,比如說收銀機,會更希望在目標機連接的屏幕上看到結果,在這里就可以修改選項。
注意:如果想在target上顯示GUI,要確保此時桌面系統以root登陸,否則調試時會報錯。
VisualGDB提供了SSH Console工具,可以快速建立SSH連接、傳輸文件:
-
處理器
+關注
關注
68文章
19414瀏覽量
231213 -
工控機
+關注
關注
10文章
1753瀏覽量
50820 -
Linux系統
+關注
關注
4文章
596瀏覽量
27511 -
GUI系統
+關注
關注
0文章
3瀏覽量
5936 -
樹莓派
+關注
關注
117文章
1710瀏覽量
105882
發布評論請先 登錄
相關推薦
【Rico Board試用體驗】QT編譯環境搭建與hello mier實現
beaglebone black + wireshark屏 + qt5
【NanoPC-T3 Plus試用體驗】安裝QT5&搭建第一個界面程序
Linux QT5程序編譯準備源碼
用qt creator編譯QT5應用
Qt5遠程是怎樣去調試ARM主機環境的
如何利用Boot to Qt軟件包來實現Qt5呢
Qt5遠程調試嵌入式linux
![<b class='flag-5'>Qt5</b><b class='flag-5'>遠程</b>調試嵌入式linux](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
Qt5 學習之路及嵌入式開發教程14:Qt5主窗口---界面設置
![<b class='flag-5'>Qt5</b> 學習之路及嵌入式開發教程14:<b class='flag-5'>Qt5</b>主窗口---界面設置](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論