完整教程:【工具开发】适用于交叉编译环境的QT qmake项目转换vscode项目插件

Qt计划转VS Code项目转换插件使用说明

1. 项目初衷

在嵌入式开发过程中,我们经常需要为同一个Qt计划构建多个平台的版本(Desktop、IMX6、SSD202等)。传统的研发流程存在以下痛点:

  • 开发环境分散:需要在Qt Creator和VS Code之间频繁切换
  • 构建配置困难:每个平台需要不同的qmake路径、编译器配置和环境变量
  • 调试困难:缺乏统一的调试设置,难以敏捷切换不同平台进行调试
  • 团队协作不便:项目配置难以标准化,新成员上手困难

本插件的目标是将Qt项目无缝转换为VS Code项目,给出统一的开发、构建和调试环境,提高构建效率和团队协作体验。

2. 项目原理

2.1 整体架构

插件采用向导式配置 + 自动化生成的设计思路:

2.2 核心功能模块

  1. 项目检测模块:自动识别Qt计划结构和.pro资料
  2. 配置向导模块:提供友好的Web界面进行参数调整
  3. 代码生成模块:根据设置自动生成VS Code项目文件
  4. 构建脚本模块:生成跨平台的Shell构建脚本
  5. 调试配置模块:自动安装GDB调试环境

2.3 科技构建

  • 前端:HTML + CSS + JavaScript(Webview界面)
  • 后端:TypeScript(VS Code扩展API)
  • 配置管理:JSON配置文件 + Shell脚本
  • 构建系统:qmake + make

3. 安装和配备

3.1 环境要求

  • VS Code: 1.60.0 或更高版本
  • 操作系统: Linux(推荐Ubuntu 18.04+)
  • 必需工具:
    • Qt开发环境(各平台qmake)
    • GCC编译器(各平台版本)
    • GDB调试器
    • Make构建工具

3.2 插件安装

从VSIX文件安装
  • 获取插件安装包lifotronicqtproj-x.x.x.vsix
  • 打开VS Code
  • Ctrl+Shift+P打开命令面板
  • 输入 Extensions: Install from VSIX...
  • 选择下载的VSIX文件进行安装
  • 重启VS Code

3.3 环境配置

3.3.1 确认应用链路径

否正确:就是根据你的系统环境,确认以下路径

Desktop平台

Desktop qmake: /usr/bin/qmake

Desktop编译器: /usr/bin/g++

IMX6平台

IMX6 qmake: /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/qt5/qmake

IMX6编译器: /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux- gnueabi/arm-poky-linux-gnueabi-g++

SSD202平台

SSD202 qmake: /opt/Qt5.9.5_arm/bin/qmake

SSD202编译器: /opt/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++

4. 使用指南

4.1 转换Qt项目

步骤1:打开Qt任务
  1. 在VS Code/ Cursor中打开包含.pro文件的Qt项目文件夹

  1. Ctrl+Shift+P打开命令面板
  2. 输入 Qt计划转VSCode项目

  1. 选择该命令启动转换向导选择包含“.pro”文件的项目目录

步骤2选择需要编译的目标平台

目前支持:

Desktop Debug

IMX6 Release

SSD202 Release

并选择在vscode上按Ctrl+Alt+B 组合键默认构建的平台(这个不核心)

步骤3:配置qmake路径

在向导界面中配置各平台的qmake路径:

  • Desktop qmake: /usr/bin/qmake
  • IMX6 qmake: /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/qt5/qmake
  • SSD202 qmake: /opt/Qt5.9.5_arm/bin/qmake
步骤4:配置编译器路径

设置各平台的编译器路径:

  • Desktop编译器: /usr/bin/g++
  • IMX6编译器: /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++
  • SSD202编译器: /opt/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
步骤5:设置生成目录

选择构建输出目录:

  • 默认选项:在项目目录创建Build目录
  • 自定义选项:指定自定义的构建目录路径
步骤6:配置依赖库目录(可选)

倘若项目有外部依赖库,可以配置库目录:

  • 运用默认lib目录
  • 或指定自定义库目录路径

步骤7:确认设置并转换

检查配置摘要,点击"完成"按钮。

步骤8:确认完成

4.2 项目构建

转换完成后,项目将含有以下构建脚本:

1. `build_desktop_debug.sh` - 构建桌面平台的调试版本。

2. `build_desktop_release.sh` - 构建桌面平台的发布版本。(没用到)

3. `build_imx6_debug.sh` - 构建IMX6平台的调试版本。(没用到)

4. `build_imx6_release.sh` - 构建IMX6平台的发布版本。

5. `build_ssd202_release.sh` - 构建SSD202平台的发布版本。

6. `clean_desktop_debug.sh` - 清理桌面平台的调试版本。

7. `clean_imx6_release.sh` - 清理IMX6平台的发布版本。

8. `clean_ssd202_release.sh` - 清理SSD202平台的发布版本。

9. `debug_desktop.sh` - 启动桌面平台的调试模式。

10. `project_config.sh` - 设置项目参数。

11. `README.md` - 计划说明文档。

12. `rebuild_desktop_debug.sh` - 重建桌面平台的调试版本。

13. `rebuild_imx6_release.sh` - 重建IMX6平台的发布版本。

14. `rebuild_ssd202_release.sh` - 重建SSD202平台的发布版本。

15. `run_desktop_debug.sh` - 运行桌面平台的调试版本。

16. `run_desktop_release.sh` - 运行桌面平台的发布版本。

  • Ctrl+Shift+P打开命令面板
  • 输入 Tasks: Run Task
  • 选择对应的构建任务:
    • 构建 Desktop Debug
    • 构建 IMX6 Release
    • 构建 SSD202 Release

采用快捷键构建vscode
  • Ctrl+Shift+B:运行默认构建任务

4.3 调试配置

插件自动生成了完整的调试配置,支持:

Desktop调试
  • 运行 Desktop Debug:直接运行程序
  • 调试 Desktop Debug:启动调试模式(在main函数设置断点)
  • 运行Desktop(无构建):运行已构建的程序

启动调试
  • F5或点击调试面板的"开始调试"按钮
  • 选择对应的调试配置
  • 程序将自动构建并启动调试

  1. 项目收益
    1. 使用vscode/cursor 丰富的扩展库
    2. 使用vscode/cursor 强大的AI agent能力

6. 常见问题

6.1 qmake路径错误

问题:构建时提示"qmake: command not found"

解决方案

  1. 检查qmake路径是否正确
  2. 确认qmake文件是否存在且有执行权限
  3. 重新运行转换向导,更正qmake路径

6.2 编译器路径错误

问题:构建时提示编译器找不到

解决方案

  1. 否正确就是检查编译器路径
  2. 确认交叉编译工具链是否已安装
  3. 检查环境变量配备

6.3 调试无法启动

问题:按F5调试时程序无法启动

解决方案

  1. 确认程序已成功构建
  2. 检查可执行文件是否存在于构建目录
  3. 确认GDB路径配置正确
  4. 检查launch.json中的program路径

6.4 自定义构建目录难题

问题:设置自定义构建目录后,调试时找不到可执行文件

解决方案

  1. 确认自定义目录路径正确
  2. 重新运行转换向导
  3. 否正确就是检查生成的配置文件中的路径

7. 高级功能

7.1 自定义构建目录

支持将构建输出重定向到任意目录:

  • 绝对路径:如/home/user/build
  • 相对路径:如../build(相对于项目根目录)

7.2 依赖库管理

支持设置外部依赖库目录,自动处理库文件的链接和运行时路径。

7.3 多项目帮助

允许为同一个工作区中的多个Qt任务分别进行转换调整。

7.4 新成员上手

  • 安装插件
  • 克隆项目代码
  • 确认环境配置
  • 直接采用F5开始调试


插件版本: v0.0.1
更新日期: 20258

posted @ 2025-11-13 07:16  ycfenxi  阅读(64)  评论(0)    收藏  举报