vscode 阅读 Linux 内核代码配置
内核源码根目录下创建 .vscode 目录
.vscode 目录下创建 c_cpp_properties.json 文件,内容如下:
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"__KERNEL__"
],
["compilerPath": "/opt/bstos/2.3.0.4/sysroots/x86_64-bstsdk-linux/usr/bin/aarch64-bst-linux/aarch64-bst-linux-gcc",](<https://www.notion.so/Docker-22f588b5e85d492895231b70d4b5c4a0?pvs=21>)
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "gcc-x64"
}
],
"version": 4
}
说明:
- compilerPath 需要指定编译器bin文件的路径,而不是编译器所在目录
- defines 添加 “KERNEL” 为了解决 uapi 相关头文件中会根据该宏控区分应用层和内核层,如果不定义可能出现头文件不存在问题
例如 include/uapi/linux/videodev2.h
中
#ifndef __KERNEL__
#include <sys/time.h>
#endif