如何在一个Linux内核模块中定义一个函数并在另一个中使用它?

Ric*_*rdo 10 linux kernel module

我为内核开发了两个简单的模块.现在我想在一个模块中定义一个函数,然后在另一个模块中使用它.

我怎么能这样做?

只需在其他模块中定义函数和调用程序而不会出现问题?

cni*_*tar 30

定义它module1.c:

#include <linux/module.h>

int fun(void);
EXPORT_SYMBOL(fun);

int fun(void)
{
    /* ... */
}
Run Code Online (Sandbox Code Playgroud)

并用于module2.c:

extern int fun(void);
Run Code Online (Sandbox Code Playgroud)

  • @Ricardo:这与导出功能无关,而仅仅是因为您没有定义模块的许可证。使用`MODULE_LICENSE`宏来完成。 (2认同)