ubuntu18.04 vscode内核模块程序错误:标识符“ KBUILD_MODNAME”未定义

问题描述 投票:0回答:1

[我的环境:Ubuntu 18.04,内核:linux-5.3.0-53 vscode:最新

用于修复linux / module.h]的命令,而不是查找asm / xxx.h] >>

cd /usr/src/linux-headers-5.3.0-53/include

sudo ln -s asm-generic/ asm

我的c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
                "/usr/include",
                "/usr/local/include",
                "/usr/src/linux-headers-5.3.0-53/include",
                "/usr/src/linux-headers-5.3.0-53-generic/include",
                "/usr/src/linux-headers-5.3.0-53/arch/x86/include",
                "/usr/src/linux-headers-5.3.0-53/include/uapi",
                "/usr/lib/gcc/x86_64-linux-gnu/7.5.0/include"
            ],
            "defines": [
                "__GNUC__",
                "__KERNEL__"
            ],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "gnu11",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "clang-x64"
        }
    ],
    "version": 4
}

我的[[hello_module.c

,一个简单的Linux内核模块程序。
//a simple linux kernel module program. #include <linux/init.h> #include <linux/module.h> #include <linux/kernel.h> MODULE_LICENSE("GPL"); //error here static int hello_init(void){ printk(KERN_ALERT "hello world\n"); return 0; } static void hello_exit(void){ printk(KERN_ALERT "goodbye world\n"); } module_init(hello_init); module_exit(hello_exit);

然后错误:

identifier "KBUILD_MODNAME" is undefined
如何解决?请帮助我。

我的环境:Ubuntu 18.04,内核:linux-5.3.0-53 vscode:用于修复linux / module.h的最新命令找不到asm / xxx.h cd /usr/src/linux-headers-5.3.0-53 / include sudo ln -s asm-generic / asm My ...

linux linux-kernel linux-device-driver ubuntu-18.04
1个回答
0
投票

KBUILD_MODNAME

是在构建内核模块时由Makefile自动定义的,因此您将无法在内核头文件中的任何位置找到它。
© www.soinside.com 2019 - 2024. All rights reserved.