фатальна помилка: netlink / genl / genl.h: Немає такого файлу чи каталогу


10

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


2
Для якого ARCH?
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 hmm, перехресного складання немає. Для якої архітектури?
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. Також переконайтесь, що ваш проект зможе знайти бібліотеки, наприклад, використовуючи правильні каталоги включати та виконувати під час створення. Я часто вказую їх, використовуючи CFLAGS = "- I $ (STAGING_DIR) / usr / include" і LDFLAGS = "- L $ (STAGING_DIR) / usr / lib"

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.