본문 바로가기

Programming

cross-compile

크로스 컴파일

udoo 보드를 타겟으로하는 크로스컴파일 환경을 우분투 데스크탑 16.04.2 LTS에 구축하는 방법을 정리합니다.

우분투 데스크탑

우분투 데스크탑 16.04.2 LTS의 설치 이미지를 https://www.ubuntu.com/download/desktop로부터 다운로드 받습니다.

패러럴즈12에 다운로드 받은 이미지를 이용하여 새로운 가상 우분투 데스크탑을 설치합니다.

크로스컴파일 환경

먼저 최신 환경으로 업데이트합니다.

$ sudo apt-get update
$ sudo apt-get upgrade

다음과 같이 패키지를 설치합니다. gcc 컴파일러는 gcc–4.7-arm-linux-gnueabihfd을 선택합니다. 자세한 정보는 여기에서 얻을 수 있습니다.

$ sudo apt-get install cmake
$ sudo apt-get install emdebian-archive-keyring
$ sudo apt-get install libc6-armel-cross libc6-dev-armel-cross
$ sudo apt-get install binutils-arm-linux-gnueabi
$ sudo apt-get install u-boot-tools
$ sudo apt-get install libncurses5-dev
$ sudo apt-get install gcc-4.7-arm-linux-gnueabihf

설치된 컴파일러는 /usr/bin/에 위치합니다.

간단한 gcc 명령을 위한 심볼릭 링크를 생성합니다.

$ sudo arm-linux-gnueabihf-gcc-4.7 arm-linux-gnueabihf-gcc

간단한 c 코드를 작성합니다.

#include <stdio.h>

vodi main()
{
    printf("hello world");
}

다음과 같이 컴파일합니다

$  sudo apt-get install arm-linux-gnueabihf-gcc-4.7 -o hello hello.c

실행파일 hello를 타켓보드에 복사합니다. 그리고 실행합니다. 퍼미션 문제가 발생한다면 실행권한을 설정합니다. 

chmod +x ./hello