如何用Visual Studio创建一个嵌入式应用?Qt框架有妙招!(一)

Qt Visual Studio Tools现在支持Qt项目的交叉编译了。这个功能归功于Qt / MSBuild和Linux development VS workload的集成。本文将展示如何在Visual Studio中使用Qt Quick创建嵌入式应用程序。

我们将开发一个在镜像屏幕上显示公共信息的应用程序。它会运行在休息区、洗手间里的嵌入式Linux设备上。本文将使用树莓派3 ModelB,操作系统是Raspbian(Buster)。

如何用Visual Studio创建一个嵌入式应用?Qt框架有妙招!(一)

准备开发环境

开发主机是一台Windows 10计算机。必须安装Visual Studio 2019,包括桌面开发和Linux开发的工作组件。

如何用Visual Studio创建一个嵌入式应用?Qt框架有妙招!(一)

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

如何用Visual Studio创建一个嵌入式应用?Qt框架有妙招!(一)

要使用Qt Visual Studio Tools,必须安装一套Qt for Windows。这样,开发计算机上也能运行应用程序,达到测试目的。

如何用Visual Studio创建一个嵌入式应用?Qt框架有妙招!(一)

交叉编译的Qt

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

如何用Visual Studio创建一个嵌入式应用?Qt框架有妙招!(一)

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

如何用Visual Studio创建一个嵌入式应用?Qt框架有妙招!(一)

设置Qt Visual Studio Tools

在IDE中安装Qt Visual Studio Tools,打开Extensions > Manage Extensions。搜索“qt”:结果应显示“Qt Visual Studio Tools”扩展;选择它,然后点击“Download”。关闭VS,按照安装说明进行操作。重新打开VS后,Qt Visual Studio Tools就可以使用了。

如何用Visual Studio创建一个嵌入式应用?Qt框架有妙招!(一)

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

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

如何用Visual Studio创建一个嵌入式应用?Qt框架有妙招!(一)

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

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

如何用Visual Studio创建一个嵌入式应用?Qt框架有妙招!(一)

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

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

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

如何用Visual Studio创建一个嵌入式应用?Qt框架有妙招!(一)

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

使用WSL在Visual Studio中交叉编译

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

  • C:includefoolib 映射到 /mnt/c/include/foolib ✔️

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

  • /home/user/raspi 映射到 /mnt/home/user/raspi ❌

为了避免该问题,我们将在/mnt中创建符号链接,映射到到WSL实例文件系统中其他顶级目录。

如何用Visual Studio创建一个嵌入式应用?Qt框架有妙招!(一)

现在准备好交叉编译项目了。选择一个Linux配置,按F7开始构建。

Visual Studio Build Output1>------ 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.qrc1>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组件推荐

  • QtitanRibbon – Ribbon UI组件:是一款遵循Microsoft Ribbon UI Paradigm for Qt技术的Ribbon UI组件,QtitanRibbon致力于为Windows、Linux和Mac OS X提供功能完整的Ribbon组件。
  • QtitanChart – Qt类图表组件:是一个C 库,代表一组控件,这些控件使您可以快速地为应用程序提供漂亮而丰富的图表。
  • QtitanDataGrid – Qt网格组件:提供了一套完整的标准 QTableView 函数和传统组件无法实现的独特功能。使您能够将不同来源的各类数据加载到一个快速、灵活且功能强大的可编辑网格中,支持排序、分组、报告、创建带状列、拖放按钮和许多其他方便的功能。
  • QtitanNavigation:QtitanNavigationDesignUI 组件是一组 GUI 控件,它实现了菜单、导航框、命令栏等导航界面,并让您以更少的滚动和点击次数有效地查看所有实体(工作区、网格或其他项目)。
  • QtitanDocking:允许您像 Visual Studio 一样为您的伟大应用程序配备可停靠面板和可停靠工具栏。黑色、白色、蓝色调色板完全支持 Visual Studio 2019 主题!

本文转载自Qt中国

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年4月28日 上午9:50
下一篇 2023年4月28日 上午10:06

相关推荐

  • 李立新一行到中铁四局交流访问(中铁李立峰)

    来源:【中国中铁四局集团】 11月9日,东华工程科技股份有限公司(以下简称“东华科技”)党委书记、董事长李立新,党委副书记、纪委书记桑艳军,副总经理陈志荣一行到中铁四局交流访问。 …

    科研百科 2024年2月2日
    188
  • 简历中的科研项目怎么写

    简历中的科研项目怎么写简历中的科研项目怎么写文综综中的优秀评讲员要严格执行报名合同,全面铺张、严格审阅目标完成度。个人观点1、高中文凭在高二年级是文凭塑造成本最低的方式,也是高考文…

    科研百科 2024年11月27日
    0
  • 做项目管理需要哪些技能?(做项目管理需要哪些技能)

    导言: 项目管理是一项复杂而关键的工作,需要高度的组织能力、沟通技巧和领导力。本文将详细介绍项目管理所需的关键技能,帮助您了解如何在项目中取得成功。 领导力与团队管理: 项目经理需…

    科研百科 2023年11月22日
    149
  • 明源移动承建商官网

    欢迎来到明源移动承建商官网! 明源移动承建商是一家专业的移动承建商,致力于为客户提供高质量的移动承建服务。我们拥有丰富的经验和专业的团队,能够为客户提供各种移动承建项目,包括移动网…

    科研百科 2024年11月14日
    0
  • 项目档案管理系统

    项目档案管理系统 项目档案管理系统是一种用于管理项目文件和信息的软件系统。在项目中,项目档案管理系统可以帮助项目经理和项目团队更好地组织和管理项目文件和信息,以便更好地跟踪项目进展…

    科研百科 2024年5月26日
    72
  • 涵盖546个小区,常德城区物业专项维修资金派息啦(常德市物业维修资金管理中心)

    近日,不少市民反映,手机收到显示为“常德市住房保障服务中心”的短信通知,大致内容为:“你位于XX的房屋,2023年度派发利息XX元……” 短信截图 为什么自己突然有一笔钱还产生了利…

    科研百科 2023年11月20日
    145
  • 公司内部合同管理制度

    公司内部合同管理制度 随着公司业务的发展,合同管理已经成为公司管理中不可或缺的一部分。为了规范合同管理,加强公司合同执行力度,提高公司运营效率,公司制定了一系列内部合同管理制度。本…

    科研百科 2024年9月18日
    24
  • 信息系统项目管理师教材下载

    信息系统项目管理师教材下载 随着信息技术的不断发展,信息系统项目管理师已经成为了一个不可或缺的职业。作为一个专业的项目管理师,你需要具备丰富的项目管理知识和技能,以便成功地完成各种…

    科研百科 2024年12月10日
    0
  • 项目管理系统功能有哪些(项目管理系统功能)

    项目管理系统功能项目管理系统功能项目管理功能是一个培养综合的项目管理技能,包括软件管理、软件管理、数字信息管理、算法统计、软件管理、通信管理、电竞信息技术、摄影摄像、商务英语、物联…

    科研百科 2024年5月19日
    101
  • (时政)建强战斗堡垒 夯实执政之基——党的十九大以来党的基层组织建设工作综述(1)

    新华社北京10月9日电题:建强战斗堡垒 夯实执政之基——党的十九大以来党的基层组织建设工作综述 新华社记者 党的力量来自组织。严密的组织体系,是马克思主义政党的优势所在、力量所在。…

    科研百科 2022年11月30日
    159