用VSCode进行Linux内核模块开发的BUG解决方案
今天想要尝试一下Linux内核编程,按照极客教程博客一步一步进行。但VSCode太不友好了,报了一堆错。
错误长下面这个样子:
不断查找资料,最后修改c_cpp_properties.json文件内容如下:
注意,linux-headers-xxx版本号不一定是这个,另外,defines里一定要有“MODULE”,暂时还搞不清楚原理。
关于如何添加c_cpp_properties.json文件,只需按下ctrl+shift+p
,然后搜索Edit C
就能找到一个C/C++:Configuration,点击就行。
好了,不报错了。
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"/usr/include",
"/usr/local/include",
"/usr/src/linux-headers-5.8.0-38-generic/arch/x86/include",
"/usr/src/linux-headers-5.8.0-38-generic/arch/x86/include/generated",
"/usr/src/linux-headers-5.8.0-38-generic/include",
"/usr/src/linux-headers-5.8.0-38-generic/arch/x86/include/uapi",
"/usr/src/linux-headers-5.8.0-38-generic/arch/x86/include/generated/uapi",
"/usr/src/linux-headers-5.8.0-38-generic/include/uapi",
"/usr/src/linux-headers-5.8.0-38-generic/include/generated/uapi",
"/usr/src/linux-headers-5.8.0-38-generic/ubuntu/include",
"/usr/lib/gcc/x86_64-linux-gnu/9/include"
],
"defines": [
"__GNUC__",
"__KERNEL__",
"MODULE"
],
"compilerPath": "/usr/bin/gcc",
"cStandard": "gnu17",
"cppStandard": "gnu++14",
"intelliSenseMode": "gcc-x64"
}
],
"version": 4
}
最终运行结果如下:
这里是原文参考地址