누군가 크로스 컴파일의 정확한 정의가 무엇인지 설명해 줄 수 있습니까? 제가 이렇게 묻는 이유는.
- 프로그램이 코드가 컴파일되는 호스트 플랫폼이 아닌 다른 플랫폼(운영 체제)으로 컴파일되는 경우 많은 사람들이 이를 크로스 컴파일이라고 부릅니다.
예: 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가 다릅니다.