致命错误:netlink / genl / genl.h:没有此类文件或目录


10

我正在为openwrt交叉编译hostapd。我越来越fatal error: netlink/genl/genl.h: No such file or directory。我已经安装了libnl-3.2.24。如果我直接编译(而不是交叉编译),则说明hostapd正确编译,没有任何错误。


2
对于哪个ARCH?
2015年

Answers:


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将正确编译而没有任何错误。” -我怀疑OP没有这个套件。
muru,2015年

@muru现在可以正常工作,刚刚测试。
AB

您正在交叉编译?
muru

@muru嗯,没有交叉编译。对于哪种架构?
2015年

@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将正确编译而没有任何错误。” -我怀疑OP没有这个套件。
muru,2015年

0

确保您的交叉编译器工具链具有libnl和libnl-genl。另外,请确保您的项目能够找到库,例如,在构建时使用正确的include和lib目录。我经常最终通过使用CFLAGS =“-I $(STAGING_DIR)/ usr / include”和LDFLAGS =“-L $(STAGING_DIR)/ usr / lib”来指定它们

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.