erreur fatale: netlink / genl / genl.h: aucun fichier ou répertoire de ce type

10

Je compile de manière croisée hostapd pour openwrt. Je reçois fatal error: netlink/genl/genl.h: No such file or directory. J'ai déjà installé libnl-3.2.24. Si je compile directement (pas de compilation croisée), hostapd se compile correctement sans aucune erreur.

Rafal
la source
2
Pour quel ARCH?
AB

Réponses:

23

Vous pouvez rechercher le package correct avec cette commande:

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

Dans mon cas, la sortie est:

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

Cela signifie que je dois installer le package libnl-3-dev:

sudo apt-get install libnl-3-dev

Et tu as besoin libnl-genl-3-dev

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

Ouvrez ensuite le configfichier:

nano hostap/hostapd/.config

et décommenter la ligne:

CONFIG_LIBNL32=y

Recommencez make.

UN B
la source
"Si je compile directement (pas de compilation croisée), hostapd se compile correctement sans aucune erreur." - Je doute qu'OP n'ait pas ce paquet.
muru
@muru Maintenant ça marche, juste testé.
AB
vous compilez en croix?
muru
@muru hmm, pas de compilation croisée. Pour quelle architecture?
AB
@muru par exemple, cela fonctionne:make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
AB
0

Le fichier d'en-tête .../netlink/genl/genl.hse trouve dans le libnl-3-devpackage

Installez-le en utilisant:

sudo apt-get install libnl-3-dev
Maythux
la source
"Si je compile directement (pas de compilation croisée), hostapd se compile correctement sans aucune erreur." - Je doute qu'OP n'ait pas ce paquet.
muru
0

Assurez-vous que votre chaîne d'outils de compilateur croisé a libnl et libnl-genl construits. Assurez-vous également que votre projet est capable de trouver les bibliothèques, par exemple en utilisant les bons répertoires include et lib lors de la construction. Je finis souvent par les spécifier en utilisant CFLAGS = "- I $ (STAGING_DIR) / usr / include" et LDFLAGS = "- L $ (STAGING_DIR) / usr / lib"

Andreas Søvik Nilsen
la source