크로스 컴파일 - 플랫폼 및 아키텍처

크로스 컴파일 - 플랫폼 및 아키텍처

크로스 컴파일의 정확한 정의가 무엇인지 설명해줄 수 있는 사람이 있나요? 나는 이것을 묻는다.

  • 프로그램이 코드가 컴파일된 호스트 플랫폼이 아닌 다른 플랫폼(운영 체제)으로 컴파일되는 경우 많은 사람들이 이를 크로스 컴파일이라고 부릅니다.

예: Windows에서 Linux arm을 컴파일합니다.

  • 반면, Linux 데스크톱(i386 아키텍처)에서 프로그램을 컴파일하면 Linux arm(ARM 아키텍처)에서 실행될 수 있습니다. 이 프로세스를 크로스 컴파일이라고 부를 수 있나요?

감사해요.

답변1

플랫폼이라는 용어에는 프로그램이 컴파일되거나 실행되는 컴퓨터에 대한 모든 세부 정보가 포함됩니다. 이는 다음을 의미합니다.

  • CPU: 명령어 세트(x86, x86_64, ARM), 엔디안(빅 엔디안, 리틀 엔디안)
  • 컴파일러: 언어(예: C90, C99, C11), 공급업체(GCC, LLVM)
  • glibc 및 BSD libc, malloc 및 jemalloc과 같은 라이브러리
  • 운영 체제

프로그램이 컴파일되는 플랫폼이 프로그램이 실행되는 플랫폼과 다른 경우 교차 컴파일을 처리해야 합니다. CPU는 특정 상황에 따라 다릅니다.

관련 정보