фатальная ошибка: netlink / genl / genl.h: нет такого файла или каталога


10

Я кросс-компиляции hostapd для openwrt. Я получаю fatal error: netlink/genl/genl.h: No such file or directory. У меня уже установлена ​​библиотека libnl-3.2.24. Если я напрямую компилирую (не кросс-компилирую), то hostapd компилируется правильно без каких-либо ошибок.


2
Для какой арки?
AB

Ответы:


23

Вы можете найти правильный пакет с помощью этой команды:

apt-file search /netlink/genl/genl.h

В моем случае вывод:

libnl-3-dev: /usr/include/libnl3/netlink/genl/genl.h

Это означает, что я должен установить пакет libnl-3-dev:

sudo apt-get install libnl-3-dev

А тебе нужно libnl-genl-3-dev

sudo apt-get install libnl-genl-3-dev

Затем откройте configфайл:

nano hostap/hostapd/.config

и раскомментируйте строку:

CONFIG_LIBNL32=y

Начните makeснова.


«Если я напрямую компилирую (а не кросс-компилирую), то hostapd компилируется правильно без каких-либо ошибок». - Я сомневаюсь, что у ОП нет этого пакета.
Муру

@muru Теперь все работает, только что протестировано.
AB

вы кросс-компилируете?
Муру

@muru хм, кросс-компиляции нет. Для какой архитектуры?
AB

@muru например, это работает:make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
AB

0

Файл заголовка .../netlink/genl/genl.hнаходится в libnl-3-devпакете

Установите его, используя:

sudo apt-get install libnl-3-dev

«Если я напрямую компилирую (а не кросс-компилирую), то hostapd компилируется правильно без каких-либо ошибок». - Я сомневаюсь, что у ОП нет этого пакета.
Муру

0

Убедитесь, что ваш кросс-компилятор имеет набор инструментов libnl и libnl-genl. Также убедитесь, что ваш проект может найти библиотеки, например, используя правильные каталоги include и lib при сборке. Я часто заканчиваю указывать их, используя CFLAGS = "- I $ (STAGING_DIR) / usr / include" и LDFLAGS = "- L $ (STAGING_DIR) / usr / lib"

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.