![크로스 컴파일 - 플랫폼 및 아키텍처](https://linux55.com/image/38407/%ED%81%AC%EB%A1%9C%EC%8A%A4%20%EC%BB%B4%ED%8C%8C%EC%9D%BC%20-%20%ED%94%8C%EB%9E%AB%ED%8F%BC%20%EB%B0%8F%20%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98.png)
크로스 컴파일의 정확한 정의가 무엇인지 설명해줄 수 있는 사람이 있나요? 나는 이것을 묻는다.
- 프로그램이 코드가 컴파일된 호스트 플랫폼이 아닌 다른 플랫폼(운영 체제)으로 컴파일되는 경우 많은 사람들이 이를 크로스 컴파일이라고 부릅니다.
예: 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는 특정 상황에 따라 다릅니다.