如何使用 gcc 编译这个微小的可加载内核模块?

发布于 2024-10-22 08:41:10 字数 510 浏览 1 评论 0原文

try.c:

#ifndef __KERNEL__
        #define __KERNEL__
#endif
#ifndef MODULE
        #define MODULE
#endif

#include <linux/module.h>
#include <linux/kernel.h>

static int __init try_init(void)
{
        printk(KERN_EMERG "Init.\n");
        return 0;
}
static void __exit try_exit(void)
{
        printk(KERN_EMERG "Exit.\n");
}
module_init(try_init);
module_exit(try_exit);

我尝试了 gcc -Wall -I/usr/src/linux-2.6.32.9/include try.c 但它给出了很多错误......

try.c:

#ifndef __KERNEL__
        #define __KERNEL__
#endif
#ifndef MODULE
        #define MODULE
#endif

#include <linux/module.h>
#include <linux/kernel.h>

static int __init try_init(void)
{
        printk(KERN_EMERG "Init.\n");
        return 0;
}
static void __exit try_exit(void)
{
        printk(KERN_EMERG "Exit.\n");
}
module_init(try_init);
module_exit(try_exit);

I tried gcc -Wall -I/usr/src/linux-2.6.32.9/include try.c but it gives lots of errors...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

人生戏 2024-10-29 08:41:10

Makefile 中尝试以下操作:

KERNEL_DIR := /lib/modules/$(shell uname -r)/build

obj-m := try.o

driver:     try.c
    make -C $(KERNEL_DIR) SUBDIRS=`pwd` modules

Try the following in a Makefile:

KERNEL_DIR := /lib/modules/$(shell uname -r)/build

obj-m := try.o

driver:     try.c
    make -C $(KERNEL_DIR) SUBDIRS=`pwd` modules
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文