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

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

누군가 크로스 컴파일의 정확한 정의가 무엇인지 설명해 줄 수 있습니까? 제가 이렇게 묻는 이유는.

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

예: 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가 다릅니다.

관련 정보