본문 바로가기
프로그래밍/Embeded

크로스 컴파일러란? 크로스 컴파일러 설치 방법!! (도전 임베디드 OS 만들기)

by Hwan2 2019. 8. 22.
728x90
반응형



크로스 컴파일러란?



다른 플렛폼에서(windows, Mac) 다른 플렛폼의(Android, IOS, Embedded) 실행 파일을 만들어 주는 컴파일러를 가르켜

크로스 컴파일러 라고 합니다.



이 무슨 말이냐??


예를 들어 Android의 .apk파일(어플리캐이션)을 만들고자 할 때 흔히 사용하는 소프트웨어가 있습니다.

바로 Android studio 입니다. 이 소프트웨어를 실행시킨 후 컴파일하면 실행파일이 만들어 집니다.


이 실행 파일은 windows에서 실행이 불가능 하죠. windows는 .exe파일만 실행 가능하기 때문입니다.

하지만 windows에서 스마트폰을 가상으로 띄우거나 직접 스마트폰에 apk파일을 넣은 후 직접 스마트폰으로 실행하면

어플리케이션은 실행이 잘 됩니다.


즉, 다른 플렛폼인 windows에서 다른 플렛폼에서 작동되는 .apk파일을 만들어 냈죠. 이를 가르켜 '크로스 컴파일' 이라고 합니다.

다시말해서 다른 플렛폼에서 작동되는 실행파일을 만들 때 사용하는 녀석입니다.


Linux에서 Embedded 실행파일을 만들 때,

windows에서 IOS 실행파일을 만들 때,

windows에서 Android 실행파일을 만들 때,

windows에서 Arduino 실행파일을 만들 때 등....


위 예시에서 개발을 위해 사용되는 컴파일러 모두가 크로스 컴파일러 라고 말합니다.


즉, 크로스 컴파일러는 하나의 명칭일 뿐, 보는 시각에 따라선 그냥 컴파일러가 될 수도 있다는 뜻입니다.

(예를들어 windows에서 visual studio를 다운받아 windows용 실행파일을 컴파일러를 통해 만들면 이것은 컴파일러가 되지만,

리눅스에서 visual studio를 다운받아 windows용 실행파일을 만들게 되면 이는 크로스 컴파일러가 되는 것입니다.)



그럼 왜 크로스 컴파일러를 사용하느냐?



이유는 단순히 생산성과 효율성 때문입니다.

기본적으로 스마트폰, 임베디드 같은경우에는 일반적인 Desktop PC 보다 성능이 떨어집니다.(cpu, ram, hdd 등......)

(스마트폰에 쓸 어플리케이션 개발을 위해서 스마트폰에 android studio를 설치해서 개발하지는 않잖아요?)


Desktop PC 에서 개발하는 것이 훨신 편하고 빠릅니다.


그렇기 때문에 다른 플랫폼에서 작동되는 실행파일을 만들기 위해 크로스 컴파일러를 사용하는 것입니다.





그럼, 본론으로 돌아와 크로스 컴파일을 설치해 보겠습니다.


저는 현재 공부하고 있는 책(도전! 임베디드 OS만들기)에 내용을 기준으로 설치하겠습니다


http://www.insightbook.co.kr/book/programming-insight/%eb%8f%84%ec%a0%84-%ec%9e%84%eb%b2%a0%eb%94%94%eb%93%9c-os-%eb%a7%8c%eb%93%a4%ea%b8%b0/%ec%86%8c%ec%8a%a4%ec%bd%94%eb%93%9c%ec%99%80-%ec%b0%b8%ea%b3%a0-%ec%9e%90%eb%a3%8c


여기서 gcc 3.3.2 – arm-linux-gcc-3.3.2.tar.bz2 를 받으시면 됩니다.


하지만 위 링크에서 받게되면 상당히 오래 걸릳라고요. 페이지 접속도 잘 안되고.....


그래서 제 github에 올려놨으니 아래 링크를 통해 받으시면 됩니다.


https://github.com/dnfwlq8054/arm_gcc.git


여기서 git clone 명령어를 통해 다운 받으시면 됩니다.



명령어 : git clone https://github.com/dnfwlq8054/arm_gcc.git





1. tar 압축 해제.



잘 풀렸으면 아래와 같이 'usr' 파일이 생성될 것입니다.






2. 경로 지정.


전 '/arm_gcc' 라는 폴더를 만들고 그 안에 압축을 풀었습니다.

따라서 우선 현재 경로를 루트 디랙토리로 이동시킨 후 .profile에서 PATH경로를 설정해 줍니다.




그 후


명령어를 입력해서 바로 터미널에 입력되도록 해줍니다.



반응형

댓글


스킨편집 -> html 편집에서