Schwerwiegender Fehler: netlink / genl / genl.h: Keine solche Datei oder kein solches Verzeichnis

10

Ich kompiliere hostapd für openwrt. Ich bekomme fatal error: netlink/genl/genl.h: No such file or directory. Ich habe bereits libnl-3.2.24 installiert. Wenn ich direkt kompiliere (nicht Cross-Compile), kompiliert Hostapd ordnungsgemäß ohne Fehler.

Rafal
quelle
2
Für welchen ARCH?
AB

Antworten:

23

Mit diesem Befehl können Sie das richtige Paket suchen:

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

In meinem Fall lautet die Ausgabe:

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

Das heißt, ich muss das Paket installieren libnl-3-dev:

sudo apt-get install libnl-3-dev

Und du brauchst libnl-genl-3-dev

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

Dann öffnen Sie die configDatei:

nano hostap/hostapd/.config

und kommentieren Sie die Zeile aus:

CONFIG_LIBNL32=y

Starten Sie makeerneut.

AB
quelle
"Wenn ich direkt kompiliere (nicht Cross-Compile), kompiliert Hostapd ordnungsgemäß ohne Fehler." - Ich bezweifle, dass OP dieses Paket nicht hat.
Muru
@muru Jetzt funktioniert es, gerade getestet.
AB
Sie kompilieren Cross?
Muru
@muru hmm, kein Cross-Kompilieren. Für welche Architektur?
AB
@muru zB funktioniert das:make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
AB
0

Die Header-Datei .../netlink/genl/genl.hbefindet sich im libnl-3-devPaket

Installieren Sie es mit:

sudo apt-get install libnl-3-dev
Maythux
quelle
"Wenn ich direkt kompiliere (nicht Cross-Compile), kompiliert Hostapd ordnungsgemäß ohne Fehler." - Ich bezweifle, dass OP dieses Paket nicht hat.
Muru
0

Stellen Sie sicher, dass in Ihrer Cross-Compiler-Toolchain libnl und libnl-genl erstellt sind. Stellen Sie außerdem sicher, dass Ihr Projekt die Bibliotheken finden kann, indem Sie beispielsweise beim Erstellen die richtigen Verzeichnisse include und lib verwenden. Ich spezifiziere sie oft mit CFLAGS = "- I $ (STAGING_DIR) / usr / include" und LDFLAGS = "- L $ (STAGING_DIR) / usr / lib".

Andreas Søvik Nilsen
quelle