我修改了内核源代码r8169.c并按如下方式计算timestamp

s64 a;
EXPORT_SYMBOL(a);
a = time();

我没有添加原始的时间戳函数调用
我正在内核的另一个源文件中使用变量a:ip_input.c
extern s64 a;

s64 b,c;
b= time();
c = b-a;

我收到此错误:
 ERROR: undefined reference to a

怎么解决?

最佳答案

从不完整的源代码来看,我想

s64 a;
EXPORT_SYMBOL(a);
a = time();

在函数内部,因此无法导出a,因为它是该函数的本地。
若要在此模块之外使用a,必须使用文件范围定义它,例如。
s64 a;
EXPORT_SYMBOL(a);

void some_function()
{
    a = time();
}

这允许导出a的符号,然后在另一个模块中使用。

关于c - Linux内核源代码中的错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23754381/

10-12 16:13