치명적인 오류 : 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?
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가 오류없이 올바르게 컴파일됩니다." -OP에이 패키지가없는 것 같습니다.
muru

@muru 이제 테스트가 완료되었습니다.
AB

크로스 컴파일하고 있습니까?
muru

@muru 흠, 크로스 컴파일 없음. 어느 아키텍처에 적합합니까?
AB

@muru 예를 들어, 이것은 작동합니다 :make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
AB

0

헤더 파일 .../netlink/genl/genl.hlibnl-3-dev패키지에 있습니다

다음을 사용하여 설치하십시오.

sudo apt-get install libnl-3-dev

"직접 컴파일 (크로스 컴파일하지 않음)하면 hostapd가 오류없이 올바르게 컴파일됩니다." -OP에이 패키지가없는 것 같습니다.
muru

0

크로스 컴파일러 툴체인에 libnl 및 libnl-genl이 빌드되어 있는지 확인하십시오. 또한 프로젝트가 빌드시 올바른 include 및 lib 디렉토리를 사용하여 라이브러리를 찾을 수 있는지 확인하십시오. CFLAGS = "-I $ (STAGING_DIR) / usr / include"및 LDFLAGS = "-L $ (STAGING_DIR) / usr / lib"를 사용하여 지정하는 경우가 많습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.