정의
컴파일러가 실행되는 플랫폼이 아닌 다른 플랫폼에서 실행 가능한 코드를 생성할 수 있는 컴파일러
또는, 컴파일이 불가능한 곳에서 컴파일후 실행파일을 생성할 수 있게 하는 것
언제 사용?
임베디드 시스템 개발을 할때 많이 사용이 된다
아래의 그림과 같이 로컬에서 개발자가 원도우 환경에서 에디터(VS같은)를 사용하면서, SAMBA + ssh를 통해 서버에 연결하게 된다.
서버환경은 Ubuntu Linux OS로 이루어져 있고, 여기서 Cross Compiler를 이용해서 코드를 돌리면, 서버에선 컴파일이 불가능한 곳(Embedded 리눅스가 아니니깐)이지만, 카메라에 있는 Embedded Linux로 들어가 컴파일이 되고, 결과적으로 서버에서 코드를 생성할 수 있게 됨!