Programming/Embedded linux

[Embedded linux] 크로스 컴파일

꾸준희 2018. 8. 5. 18:26
728x90
반응형




크로스 컴파일러(Cross compiler)



Wiki 정의 

: 크로스 컴파일러는 컴파일러가 실행되는 플랫폼이 아닌 다른 플랫폼에서 실행 가능한 코드를 생성할 수 있는 컴파일러이다. 크로스 컴파일러 툴은 임베디드 시스템 혹은 여러 플랫폼에서 실행파일을 생성하는데 사용된다. 이것은 운영체제를 지원하지 않는 마이크로컨트롤러와 같이 컴파일이 실현 불가능한 플랫폼에 컴파일하는데 사용된다. 이것은 시스템이 사용하는데 하나 이상의 플랫폼을 쓰는 반가상화에 이 도구를 사용하는 것이 더 일반적이게되었다.






크로스 컴파일러는 호스트에서 C언어나 어셈블러로 작성된 소스코드를 호스트와 다른 기종에서 사용될 수 있는 기계어로 번역해주는 컴파일러의 일종이다.



임베디드 시스템을 개발하기 위해서는 반드시 크로스 컴파일러가 있어야 한다. 크로스 컴파일러는 C 언어로 작성된 소스를 개발하고자 하는 CPU에 맞게 컴파일해서 바이너리로 만들어주는 역할을 한다. 


Host PC에서 사용되는 C 언어 컴파일러는 크로스 컴파일러라고 표현하지는 않는다. Host PC 와 같은 경우 개발자가 C 프로그램을 만들어서 컴파일을 하고 나면 프로그램 실행 결과를 바로 확인 할 수 있고, 이러한 이유는 Host PC에 설치된 C 컴파일러는 Host PC의 CPU에 맞게 실행 바이너리가 만들어지기 때문이다. 


그에 반해 임베디드용 CPU는 Host PC의 CPU와 다르기 때문에 실행 바이너리도 당연히 다르다.


즉, 만든 C 프로그램은 같지만 Host PC의 CPU에서 실행되는 바이너리와 임베디드 CPU에서 실행되는 바이너리는 다르다는 것이다. 


그래서 임베디드용 CPU용 컴파일러를 설치해야 하는데, 일반적으로 이러한 컴파일러를 크로스 컴파일러라고 부르는 것이다. 










참고자료 1 : 위키백과 

참고자료 2 : http://recipes.egloos.com/5312701

728x90
반응형
1 ··· 3 4 5 6 7