Linux 内核 - 数据定义没有类型或存储类

rqm*_*mok 1 linux kernel symbols export definition

我正在开发 Linux Kernel 3.4,我有以下代码:

    /* Proximity sensor calibration values */
unsigned int als_kadc;
EXPORT_SYMBOL(als_kadc);
static int __init parse_tag_als_calibration(const struct tag *tag)
{
    als_kadc = tag->u.als_kadc.kadc;

    return 0;
}

__tagtable(ATAG_ALS, parse_tag_als_calibration);
Run Code Online (Sandbox Code Playgroud)

但是当我构建它时,它给了我以下错误:

warning: data definition has no type or storage class [enabled by default]
Run Code Online (Sandbox Code Playgroud)

是的,这是一个警告,但它是一个被禁止的警告,它被视为一个错误。警告指向代码中的以下行:

EXPORT_SYMBOL(als_kadc);
Run Code Online (Sandbox Code Playgroud)

谁能帮我解决这个问题?

谢谢你。

rqm*_*mok 5

好的。我发现了问题:我错过了 module.h 的包含

所以,我将此添加到我的代码文件中:

#include <linux/module.h>
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题,因为 EXPORT_SYMBOL 是在该头文件中定义的。