有没有办法让 linux 内核模块中定义的全局变量在子目录中可用?使用 EXPORT_SYMBOL 使其在当前目录中可用。我试过在头文件中定义它,并使用“../name_header.h”将头文件包含在子目录中,但它似乎无法识别该变量。 具体来说,我在 c 文件中有一个变量 - vport.c(属于 openvswitch ),我想在子目录中访问这个变量。
最佳答案
EXPORT_SYMBOL
使符号可用于动态链接代码(内核模块),但我认为这不是您要实现的目标。
为了从不同的编译单元访问变量,请在您尝试访问该变量的 c 文件中添加 extern
减速。或者更好的是,使用通用头文件并将外部减速放入该文件中。该编译单元(例如 c 文件)是否位于不同的目录或子目录中通常并不重要。
关于c - 如何在内核空间内跨子目录访问全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38031265/