본문 바로가기

지식/Embeded

큐비트럭 gcc 설치

x86 이 아닌 arm 계열이므로 gcc 도 arm 계열을 설치해줘야 한다.

귀찮으니까 그냥 xwindow 에서 yum을 통해서 검색함.


근대 none-eabi 옵션이 붙은 컴파일러가 존재한다!

당최 이게 무엇이오!


■ ABI( Application Binary Interface )

    응용프로그램 이진 인터페이스. Application과 OS 사이, Application과 Libraries,

    그리고 Application과  Component 사이에서 사용되는 Low-Level Interface를 의미한다.


    API와의 차이점은

    API는 Source Code Level에서의, Programming 관점에서의 인터페이스를 의미하며

    ABI는 Binary Level( 이미 Compile된 상태. 즉, Build 후 )에서의 인터페이스이다.


    쉽게 말해서, ABI는 이미 Binary로 나온 결과물( 주로 Object ) 간의 연결에 중점을 둔

    Binary Level에서의 호환성을 의미한다고 생각하면 된다.

    ( 예를 들어, Windows 98에서 사용하는 프로그램이 그대로 Windows XP에서도 실행 가능 )





■ EABI( Embedded Application Binary Interface )

   임베디드 응용프로그램 이진 인터페이스.

   Embedded Software의 자료형, 레지스터 사용 등에 대한 표준 변환을 정의해

   다른 Compiler를 사용해 만들어진 Object 들과도 연동할 수 있게 했다.

   대표적으로 ARM, IBM의 PowerPC 등에서 사용된다.





■ None - EABI

   여기서의 None은 단순히 EABI가 '없다', '아니다'라는 의미가 아니라 "어떤 OS에 특화된 EABI가 아니다" 라는 의미이다.

   즉, ARM-None-EABI는 ARM Core를 Target으로 하지만 특정 OS 전용 Binary를 생성하지 않는다라는 의미이다.

   사실 ARM Core를 기반으로 하는 Software는 거의 arm-none-eabi-linux 혹은 arm-none-gnueabi-linux를 사용한다.



뭐 이리저리 바이너리 형태로 배포할일이 있다면 EABI 를 써야하겠지만 그럴 필요는 없당께.



설치하고 나니까 컴파일러 이게 이름이 허벌나게 길다.

==========================================================================================================


위의 컴파일러들은 X86 시스템에서 컴파일을 하기 위한 크로스 컴파일러이다. 그냥 gcc 받으면 됨 ;;;;;