VSCode看code颜值高,而且能在linux下用!不过对于一些嵌入式的c代码,或者C/CPP代码,似乎使用SourceInsight和VisualStudio能快速配置然后阅读编辑。而VSCode有时一堆红波浪线错误让人晕,但VSCode也可以快速使用的!下面把碰到的一些点记一下。
其他VSCode相关的设置可跳转
因为VSCode只是一个编辑器,所以要把编译器调试器等安装好,然后安装C的智能识别的插件。
在不同平台下编译不同目标平台应用有多种:
C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/gcc.exe
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库。
注:这样插件安装后打开一般工程已经不需要自己配置包含目录那些。打开一个工程一般会识别目前安装的编译器并提供选择
至此,其实一般已经可以愉快阅读编辑了,后面还记录一些特殊的情况下有问题的
Ctrl+Shift+P 👉C/C++: Edit configurations生成c_cpp_properties.json。
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
去除重复路径使用列编辑命令 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",
补充