【发布时间】:2012-03-18 23:20:12
【问题描述】:
我有两个内核模块(比如 modA 和 modB)。 modA 导出带有EXPORT_SYMBOL(symA) 的符号,modB 使用它。我有 modA 的标题 modA.h:
...
extern void symA(int param);
...
在modB.c:
#include "modA.h"
...
static int __init modB_init(void)
{
symA(10);
}
...
如果 i insmod modB 一切正常,我的 modB 在内核中正确链接并且函数 symA 被正确调用。但是,当我构建 modB 时,编译器会发出警告:symA is undefined。 LKM 是可重定位的 ELF,那么为什么编译器会发出此警告?这个怎么去掉?
【问题讨论】:
标签: linux gcc kernel-module