VSCode打开 C(嵌入式) 工程的一些记录

本文详细介绍了如何在VSCode中配置C/C++环境,包括选择合适的编译器、安装插件、生成c_cpp_properties.json文件,并针对uint8_t等报错提供了解决方案。重点讲解了如何设置includePath和解决编译器兼容问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

VSCode看code颜值高,而且能在linux下用!不过对于一些嵌入式的c代码,或者C/CPP代码,似乎使用SourceInsight和VisualStudio能快速配置然后阅读编辑。而VSCode有时一堆红波浪线错误让人晕,但VSCode也可以快速使用的!下面把碰到的一些点记一下。

其他VSCode相关的设置可跳转


1、通用配置

因为VSCode只是一个编辑器,所以要把编译器调试器等安装好,然后安装C的智能识别的插件。

1.1 编译器调试器

在不同平台下编译不同目标平台应用有多种:

  • MinGW:Windows下X86的吧?里面有 gcc g++
    C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/gcc.exe
  • GCC的ARM版本 各版本arm-gcc区别与安装
    C:/Program Files (x86)/GNU Arm Embedded Toolchain/10 2021.07/bin/arm-none-eabi-gcc.exe

    arm-none-eabi-gcc 下载地址
    Arm官方用于编译RAM架构的裸机系统(包括 ARM Linux 的 boot、kernel,不适用编译 Linux应用),一般适合 ARM7、Cortex-M 和 Cortex-R 内核的芯片使用,所以不支持那些跟操作系统关系密切的函数,比如fork(2),他使用的是 newlib 这个专用于嵌入式系统的C库。

  • 如果安装了Visual Studio,还会有它自带的编译器。

1.2 插件

  • C/C++
  • C/C++ Extension Pack 注:这样插件安装后打开一般工程已经不需要自己配置包含目录那些。打开一个工程一般会识别目前安装的编译器并提供选择

至此,其实一般已经可以愉快阅读编辑了,后面还记录一些特殊的情况下有问题的

2、快速配置c_cpp_properties.json

2.1 生成c_cpp_properties.json文件

Ctrl+Shift+P 👉C/C++: Edit configurations生成c_cpp_properties.json。

2.2 填"includePath"值

2.2.1 快速找到工程下所有头文件路径

find -name *.h | sed "s/\/[a-zA-Z0-9_]\{0,50\}.h//g" | uniq
VSCode终端输入命令后快速找到工程下所有头文件的路径,复制过去。

  • find -name *.h: 列出所有.h文件的路径
  • sed "s/\/[a-zA-Z0-9_]\{0,50\}.h//g" 把列出的路径中 /*.h内容去掉
  • uniq 去除重复路径

链接0 链接1 链接2 链接3 链接4

2.2.2 补全"includePath"内容

使用列编辑命令 Alt + shift + 鼠标左键选择列 鼠标中间选择列,同时补全一列相同的内容 前面"${workspaceFolder}/ [复制的多行头文件路径] ",
在这里插入图片描述 在这里插入图片描述

3. 关于uint8_t等其他的一些报错

下面几个方法可以尝试,其实主要就是哪里报错找不到哪里就添加哪里
"includePath"添加 :

"includePath": [
	"C:/Program Files (x86)/GNU Arm Embedded Toolchain/10 2021.07/arm-none-eabi/include",
	// "C:/Program Files (x86)/GNU Arm Embedded Toolchain/10 2021.07/arm-none-eabi/include/sys",
]

"defines"添加,如果是只使用VSCode阅读,使用armcc编译,那keil里的define对应挪过来:

     "defines": [
         "USE_HAL_DRIVER",
         "STM32F103xG",
         "__GNUC__",
         "__FPU_PRESENT"
     ],

“compilerPath” 指定使用的编译器路径,一般使用gcc.exe,上面c++扩展插件就能做到自动识别了,不需要自己手动在配置文件里面添加包含路径那些了。

	"compilerPath": "C:/Program Files (x86)/GNU Arm Embedded Toolchain/10 2021.07/bin/arm-none-eabi-gcc.exe",
	// "compilerPath": "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/gcc.exe",

总结

补充

### 配置或使用 Keil 与 Git 在 VSCode 中进行嵌入式开发 #### 使用 PlatformIO 扩展简化配置过程 对于希望在 Visual Studio Code (VSCode) 中利用 Keil 工具链并结合 Git 版本控制系统来进行嵌入式开发的场景,推荐采用 PlatformIO 插件。PlatformIO 是一个跨平台 IDE 和构建系统,它允许开发者通过简单的 JSON 文件定义项目依赖项和编译选项[^2]。 尽管 PlatformIO 并不是直接支持 Keil 的官方插件,但可以借助于其灵活的框架以及丰富的社区资源间接实现相似的功能体验: - **创建新项目**:启动 VSCode打开命令面板 (`Ctrl+Shift+P`) 输入 ` PIO: New Project` 创建一个新的嵌入式 C/C++ 项目。 - **选择目标板卡和支持包**:按照提示选择适合的目标硬件平台(如 STM32F769I),这一步骤类似于选择了对应的 Keil MDK 支持包。 - **导入现有工程文件**:如果已有现成的 .uvprojx 或者其他格式的 Keil 项目文件,则可以通过手动调整 platformio.ini 来匹配原有的设置;或者考虑将原有项目的源码迁移到新的结构下以便更好地管理版本历史记录。 #### 结合 Git 实现协作开发流程 为了确保团队成员之间能够高效合作,在初始化好上述环境之后还需要引入 Git 来跟踪代码变更情况: 1. 初始化本地仓库:进入项目根目录执行 `git init` 命令建立一个新的 Git 库; 2. 添加远程地址:如果有托管服务提供商(比如 GitHub/Gitee),记得关联远端仓库以方便推送更新; 3. 提交初始提交:完成必要的配置更改后立即做一次完整的 commit 记录当前状态作为起点; 4. 日常操作指南: - 编写清晰简洁的日志描述每次改动的目的; - 经常性地 pull 请求获取最新修改以免发生冲突; - 推送个人分支而非 master/main 分支保持主线稳定可靠。 ```bash # 示例:初始化并连接到Gitee上的远程仓库 $ cd your_project_folder $ git init $ git remote add origin https://gitee.com/yourname/yourrepo.git $ git branch -M main $ git push -u origin main ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值