VSCode报错cannot open source file asm/mmiowb.h,如何调整includePath配置解决?
问题原因
asm/mmiowb.h 是Linux内核架构相关的头文件,你当前配置的includePath存在两个问题:
- 内核头文件路径优先级低于系统/usr/include路径,会优先读取系统层面的头文件
- 缺少x86架构内核头文件的generated生成目录、uapi目录路径,这两个路径存放了asm架构相关的派生头文件
解决方案
先安装完整对应版本内核头文件,终端执行命令:
sudo apt install linux-headers-$(uname -r)修改c_cpp_properties.json中的includePath配置,调整路径顺序并补充缺失路径,示例如下:
"includePath": [ "${workspaceFolder}/**", // 内核相关头文件优先放在最前 "/usr/src/linux-headers-5.4.0-80/include", "/usr/src/linux-headers-5.4.0-80/arch/x86/include", "/usr/src/linux-headers-5.4.0-80/arch/x86/include/generated", "/usr/src/linux-headers-5.4.0-80/include/uapi", "/usr/src/linux-headers-5.4.0-80-generic/include", // 编译器及系统头文件放在后面 "/usr/lib/gcc/x86_64-linux-gnu/9/include", "/usr/include", "/usr/local/include" ],
- 可选优化:如果是开发Linux内核模块,可以在配置中补充宏定义,避免代码识别错误:
"defines": [ "__KERNEL__", "MODULE" ]
内容的提问来源于stack exchange,提问作者wangcheng
相关产品推荐
相关产品推荐

