크로스 컴파일과 네이티브 컴파일의 구체적인 차이점은 무엇입니까?
답변1
당신은 하나를 사용크로스 컴파일러localhost 이외의 플랫폼에 대한 실행 파일(또는 개체)을 생성합니다. 네이티브 컴파일러는 네이티브 바이너리만 생성합니다.
답변2
크로스 컴파일은 실행 중인 CPU와 다른 CPU 유형에 대해 컴파일하는 것입니다. 예를 들어 i386 시스템에서 ARM 바이너리를 컴파일하거나 32비트 시스템에서 64비트 실행 파일을 컴파일하는 것입니다.
크로스 컴파일 시 일반적으로 바이너리가 속한 시스템으로 전송될 때까지 방금 컴파일한 내용을 실행할 수 없습니다.
네이티브 컴파일은 실행 중인 것과 동일한 아키텍처에 대해 컴파일하는 것을 의미하며 이는 정상적인 현상입니다.
답변3
크로스 컴파일은 실행 중인 플랫폼(대략 운영 체제, CPU 제품군 및 ABI의 조합)이 아닌 다른 플랫폼용으로 구축됩니다. 이는 한 플랫폼에서 실행되지만 다른 플랫폼을 대상으로 하는 컴파일러가 있음을 의미합니다. 일반적으로(일부 플랫폼에는 호환성 레이어가 있다는 예외가 있음) 이는 방금 구축한 바이너리를 실행할 수 없다는 것을 의미합니다.
크로스 빌드에서는 일반적으로 컴파일러 자체는 그다지 큰 문제가 되지 않지만 나머지 빌드 시스템은 문제가 됩니다. 빌드 시스템은 올바른 옵션을 사용하여 올바른 컴파일러를 실행해야 합니다. 많은 빌드 시스템은 실행 중인 시스템의 세부 사항을 확인하기 위해 테스트 프로그램을 빌드하고 실행합니다. 크로스 빌딩이라면 일반적으로 이 작업을 수행할 수 없습니다. 많은 빌드 시스템은 빌드 프로세스 중에 물건을 생성하기 위해 빌드한 프로그램을 사용합니다. 이는 빌드 시스템이 빌드 대상 플랫폼을 위한 무언가, 빌드 대상 플랫폼을 위한 무언가, 그리고 아마도 빌드 대상 플랫폼을 위한 무언가를 빌드해야 함을 의미할 수 있습니다. 둘 다.