błąd krytyczny: netlink / genl / genl.h: Brak takiego pliku lub katalogu

10

Jestem kompilatorem wielu hostapd dla openwrt. Dostaję fatal error: netlink/genl/genl.h: No such file or directory. Mam już zainstalowaną bibliotekę libnl-3.2.24. Jeśli skompiluję bezpośrednio (nie kompilację krzyżową), to hostapd kompiluje się poprawnie bez żadnego błędu.

Rafał
źródło
2
Dla którego ŁUKU?
AB

Odpowiedzi:

23

Możesz wyszukać właściwy pakiet za pomocą tego polecenia:

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

W moim przypadku wynikiem jest:

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

Oznacza to, że muszę zainstalować pakiet libnl-3-dev:

sudo apt-get install libnl-3-dev

A ty potrzebujesz libnl-genl-3-dev

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

Następnie otwórz configplik:

nano hostap/hostapd/.config

i odkomentuj linię:

CONFIG_LIBNL32=y

Zacznij od makenowa.

AB
źródło
„Jeśli skompiluję bezpośrednio (nie kompilację krzyżową), to hostapd kompiluje się poprawnie bez żadnego błędu.” - Wątpię, że OP nie ma tego pakietu.
muru
@muru Teraz to działa, właśnie przetestowane.
AB
kompilujesz się krzyżowo?
muru
@muru hmm, bez kompilacji krzyżowej. Dla jakiej architektury?
AB
@muru np. działa to:make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
AB
0

Plik nagłówka .../netlink/genl/genl.hznajduje się w libnl-3-devpakiecie

Zainstaluj za pomocą:

sudo apt-get install libnl-3-dev
Maythux
źródło
„Jeśli skompiluję bezpośrednio (nie kompilację krzyżową), to hostapd kompiluje się poprawnie bez żadnego błędu.” - Wątpię, że OP nie ma tego pakietu.
muru
0

Upewnij się, że Twój zestaw narzędzi międzykompilatorowych ma libnl i libnl-genl. Upewnij się również, że twój projekt jest w stanie znaleźć biblioteki, na przykład używając poprawnych katalogów include i lib podczas budowania. Często kończę na ich określeniu za pomocą CFLAGS = "- I $ (STAGING_DIR) / usr / include" i LDFLAGS = "- L $ (STAGING_DIR) / usr / lib"

Andreas Søvik Nilsen
źródło