轉(zhuǎn)帖|使用教程|編輯:龔雪|2022-08-22 09:54:34.337|閱讀 297 次
概述:本文將為大家介紹如何在Visual Studio中創(chuàng)建嵌入式Qt Quick應(yīng)用程序,歡迎加入社群一起交流討論!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
Qt Visual Studio Tools現(xiàn)在支持Qt項目的交叉編譯了。這個功能歸功于Qt / MSBuild和Linux development VS workload的集成。本文將展示如何在Visual Studio中使用Qt Quick創(chuàng)建嵌入式應(yīng)用程序。
Qt技術(shù)交流群:166830288 歡迎一起進群討論
我們將開發(fā)一個在鏡像屏幕上顯示公共信息的應(yīng)用程序。它會運行在休息區(qū)、洗手間里的嵌入式Linux設(shè)備上。本文將使用樹莓派3 ModelB,操作系統(tǒng)是Raspbian(Buster)。
開發(fā)主機是一臺Windows 10計算機。必須安裝Visual Studio 2019,包括桌面開發(fā)和Linux開發(fā)的工作組件。
我們將在Windows Subsystem for Linux(WSL)的實例中運行交叉編譯器。設(shè)置開發(fā)環(huán)境的下一步是啟用WSL并安裝Linux發(fā)行版。然后應(yīng)該可以打開終端窗口并運行Linux命令。
要使用Qt Visual Studio Tools,必須安裝一套Qt for Windows。這樣,開發(fā)計算機上也能運行應(yīng)用程序,達到測試目的。
現(xiàn)在,我們可以繼續(xù)設(shè)置交叉編譯器,即可以安裝預(yù)構(gòu)建的工具鏈,也可以編譯自己的工具鏈。如果一切順利,我們應(yīng)該能夠在設(shè)備上運行一個簡單的程序。
我們準備為樹莓派構(gòu)建Qt。為此,我們將遵循以下教程“RaspberryPi2EGLFS — A modern guide for cross-compiling Qt for HW accelerated OpenGL with eglfs on Raspbian and setting up Qt Creator”。構(gòu)建完成后,我們就能夠在樹莓派上運行Qt應(yīng)用程序示例。
在IDE中安裝Qt Visual Studio Tools,打開Extensions > Manage Extensions。搜索“qt”:結(jié)果應(yīng)顯示“Qt Visual Studio Tools”擴展;選擇它,然后點擊“Download”。關(guān)閉VS,按照安裝說明進行操作。重新打開VS后,Qt Visual Studio Tools就可以使用了。
要使用Qt Visual Studio Tools,我們必須首先注冊將使用的Qt版本。我們將從注冊Qt for Windows開始。
現(xiàn)在,我們將注冊存放在WSL實例中的Qt的交叉編譯版本。
注冊將要使用的Qt版本后,我們可以創(chuàng)建一個Qt項目。
點擊“Finish”完成項目創(chuàng)建向?qū)Аisual Studio現(xiàn)在應(yīng)該顯示新的多平臺Qt Quick項目。選擇Windows配置,然后按F5鍵構(gòu)建并運行該應(yīng)用程序。然后應(yīng)顯示一個帶有“Hello World”標題的空窗口。
使用WSL實例運行交叉編譯器比使用SSH連接到構(gòu)建主機更快。使用SSH時,MSBuild必須首先將源文件上傳到遠程主機。另一方面,WSL將在/mnt掛載本地驅(qū)動器,從而使文件訪問瞬間完成。這種情況下,MSBuild將Windows路徑映射到/mnt中相對應(yīng)的Linux路徑,例如:
MSBuild假定屬性頁中提供的路徑是本地路徑,并自動將它們映射到/mnt。在屬性頁中使用Linux絕對路徑時,這可能導(dǎo)致錯誤的映射,例如:
為了避免該問題,我們將在/mnt中創(chuàng)建符號鏈接,映射到到WSL實例文件系統(tǒng)中其他頂級目錄。
現(xiàn)在準備好交叉編譯項目了。選擇一個Linux配置,按F7開始構(gòu)建。
Visual Studio Build Output 1>------ Rebuild All started: Project: QuickMirror, Configuration: Release_RPi x64 ------ 1>Invoking 'mkdir -p $(dirname /mnt/c/Users/user/Source/Repos/QuickMirror/obj/x64/Release_RPi/qmake/temp/props.txt); mkdir -p /mnt/c/Users/user/Source/Repos/QuickMirror/obj/x64/Release_RPi/qmake/temp; cd /mnt/c/Users/user/Source/Repos/QuickMirror/obj/x64/Release_RPi/qmake/temp; ("/home/user/raspi/qt5/bin/qmake" -query) 1> props.txt', working directory: '/mnt/c/Users/user/Source/Repos/QuickMirror' 1>Reading Qt configuration (/home/user/raspi/qt5/bin/qmake) 1>Invoking 'mkdir -p $(dirname /mnt/c/Users/user/Source/Repos/QuickMirror/obj/x64/Release_RPi/qmake/temp/qtvars.pro); mkdir -p $(dirname /mnt/c/Users/user/Source/Repos/QuickMirror/obj/x64/Release_RPi/qmake/temp/Makefile); mkdir -p $(dirname /mnt/c/Users/user/Source/Repos/QuickMirror/obj/x64/Release_RPi/qmake/temp/qtvars.log); mkdir -p /mnt/c/Users/user/Source/Repos/QuickMirror/obj/x64/Release_RPi/qmake/temp; cd /mnt/c/Users/user/Source/Repos/QuickMirror/obj/x64/Release_RPi/qmake/temp; ("/home/user/raspi/qt5/bin/qmake" "CONFIG -= debug release debug_and_release" "CONFIG += release" qtvars.pro) 1> qtvars.log 2>&1', working directory: '/mnt/c/Users/user/Source/Repos/QuickMirror' 1>rcc qml.qrc 1>Invoking 'mkdir -p $(dirname qml.qrc); mkdir -p $(dirname /mnt/c/Users/user/Source/Repos/QuickMirror/main.qml); mkdir -p $(dirname /mnt/c/Users/user/Source/Repos/QuickMirror/obj/x64/Release_RPi/rcc/qrc_qml.cpp); (/home/user/raspi/qt5/bin/rcc /mnt/c/Users/user/Source/Repos/QuickMirror/qml.qrc --name qml -o /mnt/c/Users/user/Source/Repos/QuickMirror/obj/x64/Release_RPi/rcc/qrc_qml.cpp)', working directory: '/mnt/c/Users/user/Source/Repos/QuickMirror' 1>Starting remote build
在VS中交叉編譯Qt項目 。
本文轉(zhuǎn)載自
Qt技術(shù)交流群:166830288 歡迎一起進群討論
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自: