Как предотвратить «ошибку: 'символ' здесь не объявлен», несмотря на EXPORT_SYMBOL в модуле ядра Linux?

Я встраиваю какой-то драйвер в ядро ​​Linux, когда получаю эту ошибку (я добавляю устройство в файл платы и зарегистрировав его):

error: 'kxtf9_get_slave_descr' undeclared here (not in a function)

Я обнаружил указанную выше функцию в файле драйвера

struct ext_slave_descr *kxtf9_get_slave_descr(void)
{
    return &kxtf9_descr;
}
EXPORT_SYMBOL(kxtf9_get_slave_descr);

Разве она не должна быть "видимой" с помощью EXPORT_SYMBOL? В файле C, содержащем приведенный выше код, нет файла заголовка (я его не писал, я просто нашел его здесь , и я реализую его. Они говорят, что он протестирован, поэтому я предполагаю, что заголовок не нужен?

Остальной код компилируется отлично (поэтому он «видит» код в папке), и файл, содержащий приведенный выше код, также компилируется!

6
задан Ciro Santilli 新疆改造中心法轮功六四事件 20 May 2017 в 12:29
поделиться