툴체인 설정

툴체인(toolchain)은 특정 아키텍처에서 소프트웨어를 개발하고 빌드하기 위한 도구들의 집합을 말한다. Yocto 프로젝트에서는 호스트 시스템에서 타겟 시스템의 바이너리를 생성하기 위해 교차 컴파일(cross-compilation) 도구를 사용한다. 이 장에서는 Yocto 프로젝트의 개발 환경을 설정하고, 적절한 툴체인을 구성하는 방법에 대해 설명한다.

툴체인 다운로드 및 설치

Yocto 프로젝트는 meta-toolchain 클래스를 사용해 툴체인을 생성할 수 있다. meta-toolchain 클래스를 이용하면 SDK(Software Development Kit)를 생성할 수 있으며, 이를 통해 호스트 시스템에서 타겟 바이너리를 컴파일할 수 있다.

  1. 빌드 설정

    빌드 디렉토리로 이동하여, 설정을 위해 oe-init-build-env 스크립트를 실행한다.

    cd /path/to/yocto/project
    source oe-init-build-env
  2. local.conf 설정

    conf/local.conf 파일을 열어 SDK 설정을 추가한다. 다소 기본적인 예를 들어보겠다.

    # 추가 또는 다음과 같이 수정
    MACHINE ??= "qemux86"
  3. 툴체인 생성

    bitbake 명령어를 사용하여 SDK 및 툴체인을 빌드한다.

    bitbake core-image-sato -c populate_sdk

    이는 core-image-sato 이미지를 생성하고 그에 맞는 SDK를 생성한다. 다른 이미지 타입도 사용할 수 있다.

  4. 툴체인 설치

    생성된 SDK가 호스트에 설치된다. 일반적으로 아래와 같은 위치에 설치 파일이 생성된다.

    tmp/deploy/sdk/poky-glibc-x86_64-core-image-sato-i586-toolchain-2.4.sh

    설치 파일을 실행하여 툴체인을 설치한다.

    ./tmp/deploy/sdk/poky-glibc-x86_64-core-image-sato-i586-toolchain-2.4.sh

    스크립트를 실행하면 설치 디렉토리를 묻는 메시지가 표시된다. 디렉토리를 입력하여 설치를 완료한다.

환경 변수 설정

툴체인이 설치된 후에는 해당 툴체인을 사용하기 위해 몇 가지 환경 변수를 설정해야 한다.

  1. 환경 설정 스크립트 실행

    설치 후에는 $INSTALL_DIR/environment-setup-* 스크립트를 실행하여 환경을 설정한다.

    이 스크립트는 컴파일러, 라이브러리 경로 및 기타 필수 변수를 설정한다.

  2. 환경 변수 확인

    환경 변수가 제대로 설정되었는지 확인한다.

    출력은 /opt/poky/2.4/sysroots/x86_64-pokysdk-linux/usr/bin/i586-poky-linux/i586-poky-linux-gcc와 같은 경로를 가리켜야 한다.

크로스 컴파일

설치된 툴체인을 사용하여 타겟 애플리케이션을 크로스 컴파일할 수 있다. 여기서는 간단한 "Hello World" 프로그램을 예로 들어 보겠다.

  1. 소스 파일 작성

    hello.c 파일을 작성한다.

  2. 크로스 컴파일

    환경 설정 스크립트를 실행한 터미널에서 크로스 컴파일한다.

  3. 타겟에서 실행

    타겟 시스템으로 컴파일된 바이너리를 전송하고 실행한다.

    실행 결과로 "Hello, World!" 메시지가 출력될 것이다.

빌드 스크립트 및 설정

프로젝트 빌드 과정을 자동화하기 위해 Makefile이나 CMake를 사용할 수 있다. 이는 크게 차이는 없지만 설정 과정이 약간 다르다.

  1. Makefile 예제

    간단한 Makefile 예제를 보겠다. Makefile을 작성한다.

  2. CMake 예제

    CMake를 사용하는 경우, CMakeLists.txt 파일을 작성한다.

    CMake 빌드 디렉토리를 만들고, 빌드 과정을 진행한다.

Last updated