3.1. 크로스?

임베디드 시스템을 개발할 때 일반적으로 호스트와 타겟이란 말을 사용하는데 이 말에 대해 알아보자.

그렇다면 크로스 컴파일러는 무엇일까? 위에서 말한 대로 호스트에서 타겟에서 돌아가는 프로그램을 만들어 이식해 주는데 호스트와 타겟에 사용되는 프로세서가 다르다면?

필자는 호스트로 Athlon CPU를 사용하는 PC를 사용하고 있다. 여기에서 실행되는 gcc는 386, 486, 586, K6, 686을 지원한다. 그러나 임베디스 시스템에 사용되는 프로세서는 지원하지 않고 있다. 그러므로 프로그램을 컴파일해도 실제 임베디드 시스템에 사용된 프로세서에서는 실행할 수 없게된다.

그러므로 실행은 호스트에서되지만 만들어지는 코드는 타겟 시스템에서 돌아갈 수 있는 컴파일러가 필요해 진다. 이 것이 바로 크로스 컴파일러다[1].

주석

[1]

크로스(cross)란 말이 호스트와 타겟이 다른단 것을 나타낸다.