linux - 找不到 Obj-m 命令

标签 linux module

我有这个入门任务,我必须在 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/

相关文章:

python - 如何为 python 版本 2 和 3 构建 OpenCV?

linux - 简单的 awk 命令问题(FS、OFS 相关)

python - 如何在python中控制系统上是否安装了库

Lazarus 中的 Windows 模拟 Apache 模块

php - 将 Magento 1.6.1 升级到 1.7.0 保存自定义模块

不使用变量名的 JavaScript Node/模块

linux - Root 无法打开 PDF Ubuntu 而用户可以

c - 使用 memcpy 会导致内存覆盖为 NULL

android - 交叉编译时链接到共享对象库 (.so)

ruby - block 内的 def 函数能完成什么任务?