轉帖|使用教程|編輯:龔雪|2022-08-22 09:54:34.337|閱讀 281 次
概述:本文將為大家介紹如何在Visual Studio中創建嵌入式Qt Quick應用程序,歡迎加入社群一起交流討論!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Qt Visual Studio Tools現在支持Qt項目的交叉編譯了。這個功能歸功于Qt / MSBuild和Linux development VS workload的集成。本文將展示如何在Visual Studio中使用Qt Quick創建嵌入式應用程序。
Qt技術交流群:166830288 歡迎一起進群討論
我們將開發一個在鏡像屏幕上顯示公共信息的應用程序。它會運行在休息區、洗手間里的嵌入式Linux設備上。本文將使用樹莓派3 ModelB,操作系統是Raspbian(Buster)。
開發主機是一臺Windows 10計算機。必須安裝Visual Studio 2019,包括桌面開發和Linux開發的工作組件。
我們將在Windows Subsystem for Linux(WSL)的實例中運行交叉編譯器。設置開發環境的下一步是啟用WSL并安裝Linux發行版。然后應該可以打開終端窗口并運行Linux命令。
要使用Qt Visual Studio Tools,必須安裝一套Qt for Windows。這樣,開發計算機上也能運行應用程序,達到測試目的。
現在,我們可以繼續設置交叉編譯器,即可以安裝預構建的工具鏈,也可以編譯自己的工具鏈。如果一切順利,我們應該能夠在設備上運行一個簡單的程序。
我們準備為樹莓派構建Qt。為此,我們將遵循以下教程“RaspberryPi2EGLFS — A modern guide for cross-compiling Qt for HW accelerated OpenGL with eglfs on Raspbian and setting up Qt Creator”。構建完成后,我們就能夠在樹莓派上運行Qt應用程序示例。
在IDE中安裝Qt Visual Studio Tools,打開Extensions > Manage Extensions。搜索“qt”:結果應顯示“Qt Visual Studio Tools”擴展;選擇它,然后點擊“Download”。關閉VS,按照安裝說明進行操作。重新打開VS后,Qt Visual Studio Tools就可以使用了。
要使用Qt Visual Studio Tools,我們必須首先注冊將使用的Qt版本。我們將從注冊Qt for Windows開始。
現在,我們將注冊存放在WSL實例中的Qt的交叉編譯版本。
注冊將要使用的Qt版本后,我們可以創建一個Qt項目。
點擊“Finish”完成項目創建向導。Visual Studio現在應該顯示新的多平臺Qt Quick項目。選擇Windows配置,然后按F5鍵構建并運行該應用程序。然后應顯示一個帶有“Hello World”標題的空窗口。
使用WSL實例運行交叉編譯器比使用SSH連接到構建主機更快。使用SSH時,MSBuild必須首先將源文件上傳到遠程主機。另一方面,WSL將在/mnt掛載本地驅動器,從而使文件訪問瞬間完成。這種情況下,MSBuild將Windows路徑映射到/mnt中相對應的Linux路徑,例如:
MSBuild假定屬性頁中提供的路徑是本地路徑,并自動將它們映射到/mnt。在屬性頁中使用Linux絕對路徑時,這可能導致錯誤的映射,例如:
為了避免該問題,我們將在/mnt中創建符號鏈接,映射到到WSL實例文件系統中其他頂級目錄。
現在準備好交叉編譯項目了。選擇一個Linux配置,按F7開始構建。
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項目 。
本文轉載自
Qt技術交流群:166830288 歡迎一起進群討論
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: