- 前言
- 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.exearm-none-eabi-gcc 下载地址
Arm官方用于编译RAM架构的裸机系统(包括 ARM Linux 的 boot、kernel,不适用编译 Linux应用),一般适合 ARM7、Cortex-M 和 Cortex-R 内核的芯片使用,所以不支持那些跟操作系统关系密切的函数,比如fork(2),他使用的是 newlib 这个专用于嵌入式系统的C库。 - 如果安装了Visual Studio,还会有它自带的编译器。
- 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}/ [复制的多行头文件路径] ",
下面几个方法可以尝试,其实主要就是哪里报错找不到哪里就添加哪里
"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",
总结
补充