[BBB로 임베디드 시스템 구축] 툴체인 설치

2019. 4. 18. 23:10임베디드/임베디드리눅스

툴체인은 임베디드 리눅스의 첫 번째 요소로, 타겟보드에서 실행될 소스로 컴파일 가능케하는 도구다

툴체인의 조건으로는

1. 툴체인은 해당 프로세서를 위한 최적의 명령어 세트를 사용함으로써 하드웨어를 효과적으로 사용할 수 있어야 한다

2. 프로젝트에 필요한 언어를 지원해야 하고, POSIX(Portable Operating System Interface 및 기타 시스템 인터페이스) 에 대한 믿음직한 구현을 갖고 있어야 한다

3. 툴체인을 공급하는 회사에서 버그 혹은 결함에 대한 업데이트를 꾸준히 진행하는지 확인해야 한다

4. 툴체인은 프로젝트 내내 바뀌지 않아야 한다. 즉, 한 번 툴체인을 정하면 끝까지 고수해야 한다. 프로젝트 도중 일관성 없이 컴파일러와 개발 라이브러리를 바꾸면 감지하기 힘든 버그를 낳는다.

 

툴체인은 컴파일러, 링커, 런타임 라이브러리를 포함하는 컴파일 도구의 집합이다

처음 리눅스 시스템의 나머지 세 요소(부트로더, 커널, 루트 파일시스템)를 빌드하기 위해 꼭 필요하다. 기본 오픈소스 패키지들이 어셈블리, C, C++을 사용하기 때문에 툴체인은 이 언어로 작성된 코드를 컴파일할 수 있어야 한다a

 

$ sudo apt-get install automake bison chrpath flex g++ git gpref \ 
gawk libexpat1-dev libncurses5-dev libsdl1.2-dev libtool \  
python2.7-dev texinfo 
$ git clone https://github.com/crosstool-ng/crosstool-ng.git 
$ cd crosstool-ng 
$ ./bootstrap 
$ ./configure --enable-local 
$ make 
$ make install 
$ ./ct-ng show-arm-cortex_a8-linux-gnueabi 
$ ./ct-ng arm-cortex_a8-linux-gnueabi 
$ ./ct-ng menuconfig 
Path and misc -> turn off Render the toolchain read-only 
Target options -> Floating point -> hardware(FPU) 

 

$ ./ct-ng build

발생한 에러에 대해 참조해보자

if configure: error: could not find GNU libtool >= 1.5.26
sudo apt-get install libtool libtool-bin
https://github.com/esp8266/esp8266-wiki/issues/15

if error: missing required tool: help2man
sudo apt-get install help2man


crosstool-ng 1.22.0 버전은 가급적 지양한다

버그가 많은 버전이고 굳이 git 브런치를 할 이유가 없다

툴체인 빌드에 성공한 후 툴체인으로 간단한 컴파일을 진행했다

file 명령어를 통해 실행파일의 정보를 간략히 출력할 수 있다

COPYRIGHT 임베디드 리눅스 프로그래밍 완전정복 / 크리스 시먼즈

 

 

'임베디드 > 임베디드리눅스' 카테고리의 다른 글

컴파일 과정  (0) 2019.04.21
툴체인 조합  (0) 2019.04.19
[BBB로 임베디드 시스템 구축] 준비  (0) 2019.04.18
부트로더를 플래시에 올리기 위한 fusing 시스템  (0) 2019.04.14
tool-chain  (0) 2019.04.14