用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
}

最终运行结果如下:
在这里插入图片描述

这里是原文参考地址

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐