Linux kernel 如何在两个模块之间导出变量?
我有两个模块mod_X.ko和mod_Y.ko。我在mod_X/中定义了一个变量var,如下所示: 文件filex.cLinux kernel 如何在两个模块之间导出变量?,linux-kernel,kernel-module,Linux Kernel,Kernel Module,我有两个模块mod_X.ko和mod_Y.ko。我在mod_X/中定义了一个变量var,如下所示: 文件filex.c int var = 1000; EXPORT_SYMBOL(var); 文件filex.h extern int var; 在mod_Y/中: 文件filey.c #include "filex.h" extern int var; Y中的Makefile正确地包含filex.h头文件/目录 但是,我无法加载模块Y,因为它在执行insmod时出现以下错
int var = 1000;
EXPORT_SYMBOL(var);
文件filex.h
extern int var;
在mod_Y/中:
文件filey.c
#include "filex.h"
extern int var;
Y中的Makefile正确地包含filex.h头文件/目录
但是,我无法加载模块Y,因为它在执行insmod时出现以下错误:
mod_Y: Unknown symbol var (err 0)
仅供参考,在加载模块Y之前已加载模块X
请提供帮助。最有可能的是,当您尝试加载模块Y时出现的消息
mod_Y:Unknown symbol var(err 0)
并不是问题的第一个迹象:在构建模块Y时,您应该得到“undefined reference”警告。您有这样的警告吗?这是否回答了您的问题?