2014-07-21 4 views
1

Buildroot Cross-Compiler로 Busybox를 컴파일하려고합니다.Busybox 컴파일 실패 - networking/nslookup.c 오류

  • 다운로드 비지 박스와 비지 박스 - 1.22.1.tar.bz2

  • 구성 비지 박스 및 XJF의 압축을 풉니이

    wget을 http://www.busybox.net/downloads/busybox-1.22.1.tar.bz2 & & 타르 : 여기

    는 단계입니다 컴파일

    메이크업은

    만들 menuconfig에 CROSS_COMPILE =/usr/지방/크로스 RPI는/usr/빈/팔 linux-

(크로스 컴파일러 경로가 올바른지)

컴파일 다음과 같은 오류를 반환 내가 사용하지 않는 경우

CC  networking/nslookup.o 
networking/nslookup.c: In function ‘server_print’: 
networking/nslookup.c:123:37: error: ‘struct <anonymous>’ has no member named ‘nsaddrs’ 
networking/nslookup.c: In function ‘set_default_dns’: 
networking/nslookup.c:163:15: error: ‘struct <anonymous>’ has no member named ‘nsaddrs’ 
make[1]: *** [networking/nslookup.o] Error 1 
make: *** [networking] Error 2 

는 크로스 컴파일러 모두가 잘 구축합니다.

조언이 있으십니까?

make menuconfig

먼저 보드의 종류에 따라 크로스 컴파일 비지 박스의 기본 구성을 작성해야합니다

+1

유일한 오류입니까? 일반적으로 (grep이나 IDE에서 -r 플래그를 사용하여) 코드베이스를 재귀 적으로 검색하고 식별자가있는 곳과없는 곳을 찾아냅니다. 또한 메시지의 핵심 부분에서 웹 검색을 수행하여 해당 패키지로 작업하는 다른 누군가가 해당 메시지를 발견하고 이해했는지 확인해야합니다. 이미 어딘가에서 파이에 포팅 된 busybox 버전을 얻을 수 있습니까? –

+0

이 경우 grep -r을 사용하는 방법을 모르겠습니다. 예, 이전 작업에서 작동하는 Linux 버전이 있습니다 – UserK

+0

busybox를 사용하는 Buildroot를 사용하여 파일 시스템을 채 웁니다. 오류의 원인은 여전히 ​​수수께끼입니다. – UserK

답변

1

하기 전에 당신이 구축하는 경우

make defconfig or
make vexpress_defconfig //if the board you are using is similar to vexpress

는 또 하나 개의 중요한 인자, 아키텍처 이름 사용 ARM 용 busybox 그러면 make와 함께 인수로 전달해야합니다.

make ARCH=arm CROSS_COMPILE=

교차 컴파일에 대한 자세한 내용은 다음을 참조하십시오.
http://wiki.beyondlogic.org/index.php?title=Cross_Compiling_BusyBox_for_ARM