您的位置:首页 > 运维架构 > Linux

linux modules 一个模块调用另一个模块的函数

2013-06-13 21:09 316 查看
模块A:

#include <linux/module.h>

void fun1(){};

EXPORT_SYMBOL(fun1);

模块B:

extern void fun1();

void fun2()

{

fun1();

}

要先把模块Ainsmod的

解决办法是把mod_a的Module.symvers放到mod_b的当前路径,从而编译mod_b,符号信息会自动连接进去.

或者在mod_b的makefile中使用KBUILD_EXTRA_SYMBOLS指定mod_a的Module.symvers, 如:

KBUILD_EXTRA_SYMBOLS=/mod_a/Module.symvers

编译mod_b时,搜索Module.symvers的路径是:

1, kernel source path, e.g. /usr/src/kernels/linux-2.6.28.10

2, makefile中M=所指定的路径, 它等效于变量KBUILD_EXTMOD的值

3, 变量KBUILD_EXTRA_SYMBOLS的值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐