2012-12-12 2 views
2

임베디드 시스템에서 자식을 빌드하고 싶습니다. here에서 자식의 소스 코드를 얻었습니다.임베디드 시스템에서 자식 빌드

나는 다음과 같은 인수 ./configure 도구를 실행 :

./configure --build=arm-eabi --host=`uname -p`-`uname -s`-`uname -o` 

구성 도구를 실행하고 오류가 말한다 반환

checking whether system succeeds to read fopen'ed directory...configure: error: in`/home/git-1.8.0.2`. 

이미 우리의 툴 체인에 CCCXX 같은 필요한 환경 변수를 설정 , 그래서 ./configure은 컴파일러에 관해서 불평하지 않습니다. 하지만 그 오류 메시지에 대해서는 잘 모릅니다. 권한 문제가있는 것 같지만 확실하게 /home/git-1.8.0.2의 허락을 받았습니다. 아이디어가 있으십니까?

+0

당신이 배포판을 사용합니까 CXX를 설정할 필요가 없다? – ymn

+1

호기심과 도전 외에도 임베디드 시스템에서 버전 제어 시스템이 필요합니까? – mouviciel

+0

완전한'config.log'를 게시하십시오. – Gilles

답변

2

configure 스크립트를 보면 테스트 프로그램을 실행해야하는 검사를 수행하려고합니다. 그러나 당신이 크로스 컴파일을하기 때문에, configure는 신뢰할 수있는 결과를 얻을 수 없다는 것을 안다. 그래서 시도해 보지도 않고 깨지기도한다.

은 이전 실행에서 캐시 된 값을 처리 할 수 ​​있으며 환경 변수를 사용하여이를 수행합니다. 동일한 메커니즘을 사용하여 수행 할 수없는 테스트에 대해 configure이라고 가정합니다 (현재 실패한 테스트 인 경우 ac_cv_fread_reads_directories=no).


는 측면 참고로, 당신은 --build--host 매개 변수의 주위 길을 잘못이있다. --build은 빌드가 수행되는 시스템을 나타내고, --host은 최종 소프트웨어가 실행될 시스템을 나타내야합니다.

--host에 제공된 이름은 크로스 컴파일 툴체인의 접두사로 간주됩니다, 그래서에 명시 적으로 CC

+0

나는'--build'와'--host' 매개 변수를 바꾸 었으니 괜찮습니다. 하지만 나는 툴체인의 컴파일러에'CC'와'CXX'를 설정해야합니다. 그렇지 않으면'./configure'가 잘못된 컴파일러가됩니다. 'ac_cv_fread_reads_directories'에'no '를 지정하려면 어떻게해야합니까? 환경 변수? 또는'./configure'를 편집 하시겠습니까? – naive231

+0

환경 변수로 설정하고'./configure'가 자동으로 선택해야합니다. –

+0

당신의 C 크로스 컴파일러가'arm-none-linux-gnueabi-gcc'이라면'CC '를 설정하지 않고'--host = arm-none-linux-gnueabi' 옵션을 사용하여 자동으로 선택해야합니다. –

관련 문제