[我的环境: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 ...
KBUILD_MODNAME
是在构建内核模块时由Makefile自动定义的,因此您将无法在内核头文件中的任何位置找到它。