我有这个入门任务,我必须在 Linux VM(版本 2.6)中运行,我正在尝试获取这个文件
测试模块.c
/*
* test module.
*/
#include <linux/module.h>
#include <linux/config.h>
#include <linux/init.h>
MODULE_LICENSE("GPL");
static int __init initialization_routine(void) {
printk ("Hello, world!\n");
return 0;
}
static void __exit cleanup_routine(void) {
printk ("Unloading module!\n");
}
module_init(initialization_routine);
module_exit(cleanup_routine);
然后我应该能够在这个 make 文件上使用 make 命令
生成文件
make:
obj-m += test_module.o
但它一直给我错误 obj-m not found。我在网上看过,似乎找不到任何东西。为了获得目标模块命令,我必须安装什么东西吗?我与 gcc 有什么关系吗?
最佳答案
您正在使用 obj-m
作为命令,但实际上它不应该列在目标之后。
编译模块的最简单方法是遵循this guide。 ,或者在您的情况下,只需复制他们的简单 makefile,这使得构建它变得非常方便;
obj-m += test_module.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
关于linux - 找不到 Obj-m 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12499869/