2012-01-19 3 views
3

나는 nginx를-1.0.11을 크로스 컴파일하는 방법을 알고 싶어요.크로스 컴파일의 nginx는-1.0.11

이미 시도 : --with-CC 옵션 그러나 그것은 나에게 오류를주고있다 : C 컴파일러에 대한 검사 ... 찾았지만 작동하지

./configure를 : 오류 : C 컴파일러 팔걸이 리눅스 GCC는

--with-CC-옵트도 작동하지 않습니다 찾을 수 없습니다. Makefile을 변경하여 수동으로 컴파일러를 변경하려고했습니다.

이미 팔 - 리눅스의 gcc를 설치하고 그것의 openssl와 잘 작동 (이 성공적으로 OpenSSL을 컴파일 교차합니다. 문제가 팔 - 리눅스 컴파일러되지 않도록). 사전에

어떤 도움이 높게 평가 될 것입니다 .. 감사합니다. :)

+0

unix.stackexchange.com (아마도) –

+0

에서 대상이되어야합니다. 크로스 컴파일러를 설치 했습니까? 만약 당신이 'arm-linux-gcc'가 없다면 당신은 그것을 필요로합니다. – fazo

답변

1

쉬운 대답은 없습니다. nginx는 현재 자신의 비 autoconf 구성 시스템을 가지고 있으며 현재는 크로스 컴파일을 지원하지 않습니다.

중 하나는 해킹 또는 구성 시스템을 피하거나 nginx를 크로스 컴파일에 대한 지원을 추가 할 때까지 기다립니다.

이 문제가 최근에 논의 된 http://forum.nginx.org/read.php?29,220607를 참조하십시오.

1

내가 1) CC의 값을 변경 OBJS/Makefile을 편집 한 모든 오브젝트 파일, 2)을 삭제 한 후, 내 IA32 리눅스 호스트에 대한 ./configure 실행을 실행하고 (반드시이 일을하기 위해)를 내장, 추가 내 링커 내 컴파일러와 라이브러리 경로에 대한 경로를 포함 3) 로컬 디렉토리 /이 /가 검색 경로에, 그것은이다 포함 USR 경우는 점에서 문제가 있습니다

에 포함/USR/일부 헤더 파일을 복사 내 컴파일러의 헤더 파일을 검색했다. 이것은 x86 어셈블러 명령어가 htonl()의 정의에 포함될 때 문제가되었습니다.

또 다른 대안은 conf/cc/gcc를 해킹하여 옵션을 추가하고 거기에서 구성을 수행하고 CROSS의 쉘 변수를 지원하는 것입니다. 나는 아직 그 짓을하지 않았다.

1

QEMU-http://wiki.qemu.org/Main_Page을 설정하고 linaro-http://www.linaro.org/의 경량 이미지를 고려한 적이 있습니까? 이 방법을 테스트하지는 못했지만 Pandaboard ARM v7a에서 nginx를 성공적으로 컴파일하고 실행했음을 알 수 있습니다.

+0

대상과 호환되는 시스템에서 빌드 작업을하는 것이 좋습니다. –

+0

정확 하 게, 때때로 크로스 컴파일러, 크로스 컴파일 시스템 라이브러리 등을 설정하는 대신에 쉽게 찾을 수 있습니다. – Ash

1

내 데스크톱 컴퓨터 (./configure --without-pcre --without-http_rewrite_module)에서 구성을 만든 다음/objs/Makefile에서 'cc'명령을 편집하여 nginx를 성공적으로 크로스 컴파일했습니다 올바른 gcc로 configure가 생성하는 Makefile은 매우 간단합니다. 그냥 당신이 모든 환경 변수 (CC, LD, LIBS 등)

+0

Yocto로 귀찮은 시간이 없었으며 현재 재 작성 모듈이 나, 이것은 아주 좋은 해결 방법이었다. 감사! – Isaac

1

난 그냥 V 1.4.7에게

./configure --with-ld-opt=-L/path/to/libfolder \ 
    --with-cc-opt=-I/path/to/include --prefix=./nginx 
make CC=arm-linux-gnueabi-gcc 
make install 

은 --prefix의 nginx에 everithing을 설치하는이 방법을 구축 할뿐만 아니라 적절하게 설정합니다./nginx와 하나는 장치에 생성 된 nginx 폴더를 이동해야하지만 상대 경로에서 서버를 시작해야합니다.

./nginx/sbin/nginx 
+0

뭐라고 할거야? –

+0

내 대답을 마쳤습니다. –

관련 문제