#linux #kernel #export #definition #symbols
#linux #ядро #экспорт #определение #символы
Вопрос:
Я работаю над ядром Linux 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);
но когда я его создаю, это выдает следующую ошибку:
warning: data definition has no type or storage class [enabled by default]
Да, это предупреждение, но это запрещенное предупреждение, и оно рассматривается как ошибка.
Предупреждение указывает на следующую строку в коде:
EXPORT_SYMBOL(als_kadc);
Кто-нибудь может помочь мне решить эту проблему?
Спасибо.
Ответ №1:
ОК. Я понял проблему: мне не хватало include для module.h
Итак, я добавил это в свой файл кода:
#include <linux/module.h>
Это устранило мою проблему, потому что EXPORT_SYMBOL был определен в этом заголовочном файле.