栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > C/C++/C#

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

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

VScode打开 C工程的一些记录
  • 前言
  • 1、通用配置
    • 1.1 编译器调试器
    • 1.2 插件
  • 2、快速配置c_cpp_properties.json
    • 2.1 生成c_cpp_properties.json文件
    • 2.2 填"includePath"值
      • 2.2.1 快速找到工程下所有头文件路径
      • 2.2.2 补全"includePath"内容
  • 3. 关于uint8_t等其他的一些报错
  • 总结


前言

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",

总结

补充

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1038235.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号