2012-01-05 3 views
0

일부 프로그램의 소스가 있고, 소스가 GNU autotools를 사용한다고 가정하고 간단하게 유지하려면 프로그램이 어떤 종류의 개발 도구가 될 수 없다고 가정 해 봅시다. 내가 편리한 크로스 툴체인이있는 경우, I가 구성 할 수 있습니다 사용하여 플랫폼 procfoo-vendorbar-bazos에 대한 크로스 컴파일 :'HOSTCC'및 ./configure --host에 "host"라는 단어의 의미는 무엇입니까?

./configure --host=procfoo-vendorbar-bazos 

을하지만, 조용한 (어) 출력의 스타일 다양한 소스에 의해 채택 된 리눅스 2.6,

를 포함하여 구축
HOSTCC foo.c 

는 foo.c를이 난에 짓고 있어요 시스템을위한 네이티브 컴파일러로 구축되고 있음을 의미 bar.c이되는 공사용는 것을 의미한다

CC bar.c 

에서 차별화 시스템을위한 크로스 컴파일러와 함께 프로그램을 구축하고 있습니다.

어딘가에서 혼란스러워하거나 HOSTCC의 호스트가 ./configure --host이라는 의미에서 호스트가 아닙니다.

+0

좀 더 살펴보면 BUILD_CC/CC_FOR_BUILD는 기본 컴파일러를 지정하는 HOSTCC의 일반적인 대안으로 보입니다. – rakslice

답변

1

autoconf/automake에는 실제로 호스트 컴파일러의 개념이 없습니다. CC는 항상 대상 컴파일러입니다. HOSTCC를 본다면 개발자가 수동으로 패키지를 추가하는 것입니다.

--host는 생성 된 프로그램이 실행될 호스트 유형을 지정합니다.

+0

"대상 컴파일러"란 --host에 의해 configure 스크립트에 지정된 플랫폼에 대한 교차 컴파일러를 의미하며 "host compiler"는 네이티브 컴파일러를 의미합니까? – rakslice

+0

예. HOSTCC/NATIVECC가 존재한다면 ./configure ** - build = xyz ** (--host가 아닌)의 영향을받을 것입니다. –