跨平台C++开发框架Qt教程:如何在Visual Studio中创建嵌入式Qt quick应用程序

Qt Visual Studio工具现在支持 Qt项目的交叉编译。由于Qt / MSBuild和Linux开发VS工作负载的集成,使其成为可能。在本文中,我们将展示如何使用此功能在Visual Studio中通过Qt Quick创建嵌入式应用程序。

Qt是一个跨平台框架,通常用作图形工具包,它不仅创建CLI应用程序中非常有用。而且它也可以在三种主要的台式机操作系统以及移动操作系统(如Symbian,Nokia Belle,Meego Harmattan,MeeGo或BB10)以及嵌入式设备,Android(Necessitas)和iOS的端口上运行。现在我们为你提供了免费的试用版。赶快点击下载Qt最新试用版>>

点击获取更多文章教程

Qt Visual Studio工具现在支持 Qt项目的交叉编译。由于Qt / MSBuild和Linux开发VS工作负载的集成,使其成为可能。在本文中,我们将展示如何使用此功能在Visual Studio中通过Qt Quick创建嵌入式应用程序。

我们将开发用于在镜像屏幕上显示公共信息的应用程序。这些是在休息区,洗手间等安装的一部分。该应用程序将在嵌入式Linux的设备上运行。在本文中,我们将使用运行Raspbian(Buster)的Raspberry Pi 3 ModelB。

跨平台C++开发框架Qt教程:如何在Visual Studio中创建嵌入式Qt quick应用程序

我们在目标设备上运行Qt Quick嵌入式应用程序

准备开发环境

开发主机将是Windows 10计算机。必须安装Visual Studio 2019,包括桌面开发和Linux开发工作负载。

跨平台C++开发框架Qt教程:如何在Visual Studio中创建嵌入式Qt quick应用程序

所需的Visual Studio工作负载

我们将在Windows Linux子系统(WSL)的实例中运行交叉编译器。设置开发环境的下一步是启用WSL并安装Linux发行版。然后应该可以打开终端窗口并运行Linux命令。

user@buildhost:~$ uname -srvoLinux 4.4.0-18362-Microsoft #836-Microsoft Mon May 05 16:04:00 PST 2020 GNU/Linuxuser@buildhost:~$

WSL中的命令行外壳

要使用Qt Visual Studio工具,必须至少有一个Windows版Qt安装可用。出于测试目的,这还将允许在开所发的应用程序上运行。

跨平台C++开发框架Qt教程:如何在Visual Studio中创建嵌入式Qt quick应用程序

开发环境概述

交叉编译Qt

现在,我们可以继续设置交叉编译器。我们可以安装预构建的工具链,也可以编译自己的工具链。如果一切顺利,那么我们应该能够在设备上运行一个简单的程序。

user@buildhost:~$ echo "#include " > main.cppuser@buildhost:~$ echo "int main() {" >> main.cppuser@buildhost:~$ echo "std::cout << "Hello World from Raspberry Pi\n"";"" >> main.cppuser@buildhost:~$ echo ""return 0;"" >> main.cppuser@buildhost:~$ echo ""}"" >> main.cppuser@buildhost:~$ /opt/cross-pi-gcc-8.3.0/bin/arm-linux-gnueabihf-g++ main.cppuser@buildhost:~$ scp a.out pi@192.168.1.99:/home/pipi@192.168.1.99's password:a.out    100% 12KB 218.1KB/s 00:00user@buildhost:~$ ssh pi@192.168.1.99 ./a.outpi@192.168.1.99's password:Hello World from Raspberry Piuser@buildhost:~$

在Raspberry Pi上运行“ Hello World”

我们准备为Raspberry Pi构建Qt。为此,我们将遵循“spberryPi2EGLFS — A modern guide for cross-compiling Qt for HW accelerated OpenGL with eglfs on Raspbian and setting up Qt Creator”教程。构建完成后,我们应该能够在Raspberry Pi上运行示例Qt应用程序。

user@buildhost:~$ echo ""#include "" > main.cpp user@buildhost:~$ echo ""int main() {"" >> main.cpp user@buildhost:~$ echo ""qInfo() << ""Hello World with Qt version"" << qVersion();"" >> main.cpp user@buildhost:~$ echo ""return 0;"" >> main.cpp user@buildhost:~$ echo ""}"" >> main.cpp user@buildhost:~$ echo ""SOURCES += main.cpp"" > hello.pro user@buildhost:~$ raspi/qt5/bin/qmake user@buildhost:~$ make -s user@buildhost:~$ scp hello pi@192.168.1.99:/home/pi pi@192.168.1.99's password: hello 100% 12KB 359.6KB/s 00:00 user@buildhost:~$ ssh pi@192.168.1.99 ./hello pi@192.168.1.99's password: Hello World with Qt version 5.12.9 user@buildhost:~$user@buildhost:~$ echo ""int main() {"" >> main.cppuser@buildhost:~$ echo ""qInfo() << ""Hello World with Qt version"" << qVersion();"" >> main.cppuser@buildhost:~$ echo ""return 0;"" >> main.cppuser@buildhost:~$ echo ""}"" >> main.cppuser@buildhost:~$ echo ""SOURCES += main.cpp"" > hello.prouser@buildhost:~$ raspi/qt5/bin/qmakeuser@buildhost:~$ make -suser@buildhost:~$ scp hello pi@192.168.1.99:/home/pipi@192.168.1.99's password:hello 100% 12KB 359.6KB/s 00:00user@buildhost:~$ ssh pi@192.168.1.99 ./hellopi@192.168.1.99's password:Hello World with Qt version 5.12.9user@buildhost:~$

在Raspberry Pi上运行Qt示例应用程序

设置Qt Visual Studio工具

要从IDE 安装Qt Visual Studio工具,请打开Extensions > Manage Extensions。搜索“ qt”:结果应显示“ Qt Visual Studio Tools”扩展名;选择它,然后按“下载”。关闭VS,然后按照安装说明进行操作。重新打开VS后,Qt Visual Studio工具应该可用。

跨平台C++开发框架Qt教程:如何在Visual Studio中创建嵌入式Qt quick应用程序

Qt Visual Studio工具菜单

要使用Qt Visual Studio Tools,我们必须首先注册将要使用的Qt版本。我们将从为Windows注册Qt开始。

  • 打开“Qt VS Tools > Qt Options”,然后在“ Qt版本”选项卡上按“Add”。
  • 提供名称和Qt安装的路径。

跨平台C++开发框架Qt教程:如何在Visual Studio中创建嵌入式Qt quick应用程序

在Qt VS工具中注册Windows版Qt

现在,我们将注册驻留在WSL实例中的Qt的交叉编译版本。

  • 再次在“ Qt版本”选项卡上按“add”以打开“Add New Qt Version”对话框。
  • 将“Build Host”设置为“ Linux WSL”。(如果我们使用的是物理构建主机,而不是通过WSL使用虚拟构建主机,则可以选择“ Linux SSH”。)
  • 提供Qt安装的名称和路径,以及要使用的编译器(默认为g ++)。在这里,我们将提供交叉编译器的路径。

跨平台C++开发框架Qt教程:如何在Visual Studio中创建嵌入式Qt quick应用程序

为Raspberry Pi注册Qt版本

创建一个多平台的Qt Quick项目

在注册了将要使用的Qt版本之后,我们现在可以创建一个Qt项目。

  • 选择“ File > New > Project”以打开“ Visual Studio”对话框以创建新项目
  • 在项目模板搜索中输入“ qt”,然后选择“ Qt Quick Application”
  • 按“Next”;提供项目的名称和位置,然后按“Create”。
  • “Qt Quick Application Wizard”对话框将打开。按“Next >>”进行配置设置。
  • 为Windows和Qt的Raspberry Pi版本添加项目配置。

跨平台C++开发框架Qt教程:如何在Visual Studio中创建嵌入式Qt quick应用程序

新项目配置

按“Finish”以完成项目创建向导。Visual Studio现在应该显示新的多平台Qt Quick项目。选择Windows配置,然后按F5键构建并运行该应用程序。然后应打开带有“ Hello World”标题的空窗口。

使用WSL在Visual Studio中交叉编译

使用WSL实例运行交叉编译器比使用SSH连接到构建主机更快。使用SSH时,MSBuild必须首先将源文件上传到远程主机。另一方面,WSL将在中安装本地驱动器/mnt,从而使文件访问瞬间完成。在这种情况下,MSBuild将Windows路径映射到根于的相应Linux路径/mnt,例如:

  • C:includefoolib maps to /mnt/c/include/foolib 

MSBuild将假定属性页中提供的路径是本地路径,并将它们映射到/mnt。在属性页中使用绝对Linux路径时,这可能导致错误的映射,例如:

  • /home/user/raspi maps to /mnt/home/user/raspi /strong>

为了避免这个问题,我们将在/mnt中创建指向WSL实例文件系统中其他顶层目录的符号链接。

user@buildhost:/mnt$ sudo ln -s /home homeuser@buildhost:/mnt$ ls -gototal 0drwxrwxrwx 1 4096 Sep 1 15:29 cdrwxrwxrwx 1 4096 Sep 1 15:29 ddrwxrwxrwx 1 4096 Sep 1 15:29 elrwxrwxrwx 1 5 Sep 1 17:10 home -> /homeuser@buildhost:/mnt$

在中创建符号链接 /mnt

现在,我们可以交叉编译该项目了。选择一个Linux配置,然后按F7键开始构建。

1>------ Rebuild All started: Project: QuickMirror

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年8月24日
下一篇 2020年8月24日

相关推荐

发表回复

登录后才能评论