前言
所謂的跨平臺(tái)qt5遠(yuǎn)程編譯環(huán)境,就是實(shí)現(xiàn)在本機(jī)的VS上寫Qt程序,然后在遠(yuǎn)程的linux機(jī)器上進(jìn)行編譯,得到Qt的Gui或非GUI程序。
跟交叉編譯比起來,遠(yuǎn)程編譯不需要進(jìn)行復(fù)雜的交叉編譯工具配置;由于是自機(jī)編譯,也不會(huì)存在開發(fā)工具版本匹配問題,穩(wěn)定性高于交叉編譯;遠(yuǎn)程編譯的缺點(diǎn)也比較突出:目標(biāo)機(jī)需要安裝完整的開發(fā)工具,編譯速度會(huì)受到目標(biāo)機(jī)性能的嚴(yán)重限制。
簡言之,對(duì)于一些裝了Linux,但是性能有限、缺少相應(yīng)開發(fā)文檔、交叉編譯存在風(fēng)險(xiǎn)的機(jī)器/開發(fā)板,比如說來源不明的x86工控機(jī)、Orange/Banana Pi 這類仿照樹莓派的開發(fā)板,推薦通過遠(yuǎn)程編譯的方式進(jìn)行開發(fā)部署。
對(duì)于樹莓派、Tinker Board之類的開發(fā)板,VisualGDB提供了經(jīng)測試的交叉編譯工具、直接使用即可。
測試環(huán)境
開發(fā)環(huán)境:電腦(Win10 21H2,x64)+VS2019+VisualGDB5.6+Qt5.11, VS安裝了Qt插件
目標(biāo)環(huán)境:80收的工控機(jī),處理器為Atom D2550, 已經(jīng)安裝64位Debian11(帶GNOME圖形)。[關(guān)在上海兩個(gè)月了,條件艱苦,只能找到這么一臺(tái)機(jī)器了,唉]
一、目標(biāo)機(jī)準(zhǔn)備
1.開啟ssh并允許root登錄
VisualGDB在之后調(diào)試的時(shí)候如果用sudo的方式調(diào)試比較容易報(bào)錯(cuò),最好直接用root連接。
目標(biāo)機(jī)上:
nano /etc/ssh/sshd_config
用vim也可以,個(gè)人覺得nano比vim方便多了。修改以下項(xiàng):
PermitRootLogin yes #允許root登錄
PermitEmptyPasswords no #不允許空密碼登錄
PasswordAuthentication yes # 設(shè)置是否使用口令驗(yàn)證。
X11Forwarding yes #啟用遠(yuǎn)程圖形支持
重啟一下ssh服務(wù)
/etc/init.d/sshd retart
再測試一下用root連接目標(biāo)機(jī)。root登錄有風(fēng)險(xiǎn),以后機(jī)子要聯(lián)網(wǎng)使用的時(shí)候記得關(guān)
2.允許通過root登錄桌面
目標(biāo)機(jī)上:
nano /etc/gdm3/daemon.conf
在 [security] 下添加 AllowRoot=True,保存退出。
nano /etc/pam.d/gdm-password
把a(bǔ)uth required pam_succeed_if.so user != root quiet_success這行注釋掉。
保存退出,reboot一下機(jī)器,登錄的時(shí)候就可以用root賬戶了。
3.安裝編譯環(huán)境
①檢查一下sources.list,換一個(gè)靠譜點(diǎn)的鏡像源
②apt upgrade一下。
③安裝編譯工具:
apt install cmake
apt install build-essential
④qt5的開發(fā)工具:
apt install qt5-qmake
apt install qtbase5-dev
apt install qtdeclarative5-dev
apt install qtwebengine5-dev
apt install qml-module-qt-labs-platform
其他qt模塊可以在需要使用的時(shí)候按需安裝:
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在目標(biāo)機(jī)上不需要,不用安裝。
⑤檢查安裝
qmake --version 檢查一下qt版本:
二、VS+VisualGDB創(chuàng)建項(xiàng)目
①VS創(chuàng)建項(xiàng)目界面選擇Linux Project Wizard:
②Project Type選擇:
③連接目標(biāo)機(jī):
④接下來是源文件的存儲(chǔ)方式,這里提供存儲(chǔ)在開發(fā)用的電腦(Windows)和存儲(chǔ)在目標(biāo)機(jī)上兩種選項(xiàng):
VisualGDB推薦的方式是把文件存在目標(biāo)機(jī)上,通過SSH取過來。但在開發(fā)GUI時(shí)會(huì)使用qtdesigner讀取.ui文件,實(shí)際使用時(shí)很容易出現(xiàn)同步錯(cuò)誤的情況,個(gè)人推薦還是本地存儲(chǔ),編譯時(shí)再上傳到目標(biāo)機(jī),配置方法:
注意:同步文件類型默認(rèn)沒有txt類型,需要手動(dòng)加上。如果不加就會(huì)導(dǎo)致CMakelists.txt無法同步,導(dǎo)致報(bào)錯(cuò)。
⑤選擇目標(biāo)機(jī)上IncludeDir:
※目標(biāo)機(jī)編譯需包含的內(nèi)容,也可以之后補(bǔ)充:
⑥完成項(xiàng)目創(chuàng)建
默認(rèn)創(chuàng)建的項(xiàng)目是帶ui的,不過可以比較方便地修改成console程序。
⑦運(yùn)行結(jié)果:
三、項(xiàng)目高級(jí)設(shè)置/工具
可右鍵項(xiàng)目打開VisualGDB屬性配置項(xiàng)目的高級(jí)選項(xiàng),推薦探索熟悉一下。
在調(diào)試選項(xiàng)中:
可以看到默認(rèn)Console輸出是連接到開發(fā)電腦的,GUI也是通過X Window輸出在開發(fā)電腦上(如果沒有安裝Xterm或XMing時(shí)VisualGDB會(huì)自動(dòng)下載安裝,很方便)。
但我們?cè)陂_發(fā)一些系統(tǒng)的時(shí)候,比如說收銀機(jī),會(huì)更希望在目標(biāo)機(jī)連接的屏幕上看到結(jié)果,在這里就可以修改選項(xiàng)。
注意:如果想在target上顯示GUI,要確保此時(shí)桌面系統(tǒng)以root登陸,否則調(diào)試時(shí)會(huì)報(bào)錯(cuò)。
VisualGDB提供了SSH Console工具,可以快速建立SSH連接、傳輸文件:
-
處理器
+關(guān)注
關(guān)注
68文章
19409瀏覽量
231188 -
工控機(jī)
+關(guān)注
關(guān)注
10文章
1753瀏覽量
50815 -
Linux系統(tǒng)
+關(guān)注
關(guān)注
4文章
595瀏覽量
27510 -
GUI系統(tǒng)
+關(guān)注
關(guān)注
0文章
3瀏覽量
5934 -
樹莓派
+關(guān)注
關(guān)注
117文章
1710瀏覽量
105880
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論