System&Embedded

ubuntu 개발환경 설정 (cross compile - configure 포함)

휘프노스 2017. 11. 4. 22:00

여러가지 라이브러리들을 새로 다운 받아 컴파일하거나 설치할때 필요한 것들을 체크해둠

 

 

<default setting>

 

$ sudo apt-get update

$ sudo apt-get upgrade

$ sudo apt-get install python-dev        (Python.h)

$ sudo apt-get install dh-autoreconf    (autoreconf)


<build essential>

$ sudo apt-get install gawk wget git-core diffstat unzip texinfo build-essential chrpath

$ sudo apt-get install socat libsdl1.2-dev

$ sudo apt-get install xterm sed cvs subversion coreutils texi2html

$ sudo apt-get install docbook-utils python-pysqlite2 help2man make gcc g++ desktop-file-utils
$ sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev mercurial autoconf automake groff
$ sudo apt-get install curl lzop asciidoc


$ sudo apt-get install gcc-multilib


 

 

 

<CROSS COMPILE (ARM)>

 

[common]

$ sudo apt-get install emdebian-archive-keyring
$ sudo apt-get install u-boot-tools
$ sudo apt-get install libncurses5-dev

 

[gnueabi - arm core 6]

$ sudo apt-get install libc6-armel-cross libc6-dev-armel-cross   (의존성 체크에 의한 자동 설치되는 부분인 듯)
$ sudo apt-get install binutils-arm-linux-gnueabi
$ sudo apt-get install gcc-arm-linux-gnueabi
$ sudo apt-get install g++-arm-linux-gnueabi

 

[gnueabihf - imx6]

$ sudo apt-get install binutils-arm-linux-gnueabihf
$ sudo apt-get install gcc-arm-linux-gnueabihf
$ sudo apt-get install g++-arm-linux-gnueabihf

 

 

크로스 컴파일러 configure 설정

 

<configure 환경설정>

 

export CROSS_COMPILE="arm-linux-gnueabi"
export AR=${CROSS_COMPILE}-ar
export AS=${CROSS_COMPILE}-as
export LD=${CROSS_COMPILE}-ld
export CC=${CROSS_COMPILE}-gcc
export NM=${CROSS_COMPILE}-nm
export RANLIB=${CROSS_COMPILE}-ranlib

 

# 컴파일 플래그 설정

export CFLAGS=""                                   
export CPPFLAGS=""

# 링크 플래그 설정
export LDFLAGS=""

# 추가 라이브러리
export LIBS=""

 

환경설정 이후 컴파일(make) 전단계로 configure 설정 필요

 

./configure --prefix=${TARGETDIR}/build --target=${CROSS_COMPILE} --host=${CROSS_COMPILE} --build=i586-pc-linux-gnu

 

-----

prefix : 컴파일된 결과물이 저장될 위치

target : 대상 플랫폼 (크로스 컴파일러)

host :  대상 플랫폼 (크로스 컴파일러)

build : 컴파일 플랫폼 (현재 컴파일 시스템)

 

 

임베디드 환경에서 오픈 소스를 직접 컴파일해서 라이브러리나 바이너리를 사용하고자 할때

체크해야할 것들 정리