2009-05-22 2 views

답변

22

Cross-compilation은 호스트라고하는 다른 시스템에서 한 컴퓨터 시스템 (종종 타겟이라고도 함)의 코드를 컴파일하는 행위입니다.

예를 들어 대상 시스템이 너무 작아서 컴파일러와 모든 관련 파일을 호스팅 할 수없는 경우와 같이 매우 유용한 기술입니다.

일반적인 예로는 많은 임베디드 시스템뿐만 아니라 일반적인 게임 콘솔이 있습니다.

+2

oh ...so 시스템에서 코드를 컴파일하고 다른 시스템에서 실행 파일을 배포 하시겠습니까? –

+1

"필수"위키 백과 링크 : http://en.wikipedia.org/wiki/Cross_compilation – FeatureCreep

+1

예. 그리고이 시스템은 다른 아키텍처를 가지고 있습니다. – Stephan202

2

엄격한 의미에서 다른 호스트에서 실행되는 것은 한 호스트의 코드 컴파일입니다.

일반적으로 CISC CPU 플랫폼에서 RISC 바이너리를 작성하거나 32 비트 시스템에서 64 비트 바이너리를 빌드하는 것과 같이 호스트와 이진 호환되지 않는 아키텍처의 컴파일과 관련하여 사용됩니다. 또는 Intel PC 기반 OS에서 ARM CPU 아키텍처를 사용하여 임베디드 장치에서 실행되도록 고안된 펌웨어를 구축하는 경우와 같습니다.

6

"크로스 컴파일"이란 말은 리눅스 박스에서 MAC 또는 Windows 상자에서 실행하려는 의도로 소스를 컴파일하는 것입니다. 이것은 일반적으로 크로스 컴파일 플러그인을 사용하여 이루어지며, 인터넷을 통해 다양한 웹 서버에서 쉽게 사용할 수 있습니다. 하나는 Windows 상자에 대해 컴파일하도록 설계된 자신의 리눅스 박스에 크로스 컴파일 플러그인을 설치하는 것입니다. 그런 다음 Linux/* NIX 상자에서 컴파일 할 수있을뿐만 아니라 Windows 용 실행 파일을 컴파일하고 링크 할 수도 있습니다. 이 기능은 단일 Linux/Windows/MAC 상자에 액세스 할 수있는 프리랜서 프로그래머에게 매우 편리합니다. 다양한 크로스 컴파일 플러그인은 많은 애플리케이션을 허용하며, 그 중 일부는 유용하다고 인식되거나 그렇지 않을 수도 있으므로 플러그인의 README 파일을 철저히 읽어야합니다.

크로스 컴파일 방법을 적용하려는 특별한 프로젝트가 있습니까?

2

크로스 컴파일러는 소스 코드를 한 아키텍처에서 다른 아키텍처로 컴파일합니다. 예를 들어

는 : hello.c

  1. gcc hello.c은 (GCC는 x86 아키텍처를위한 컴파일러이다.)
  2. arm-cortexa8-linux-gnueabihf-gcc hello.c
    은 (ARM -....- GCC는 ARM 아키텍처 용 컴파일러이다.)이 대상 보드 (예 : rpi, beaglebone, wega board)에 대해 호스트 PC에서 컴파일 중입니다. 이 예에서는 arm-cortexa8-linux-gnueabihf-gcc을 '교차 컴파일러'라고합니다.

이 과정을 크로스 컴파일이라고합니다.
자세한 내용을 보려면 링크를 참조하십시오. cross compilation