본문으로 바로가기

우분투 18.04는 GCC 버전 7.3.x가 설치되어 있고, MIPS toolchain은 GCC 5.x 버전을 사용하여 그동안 우분투 16.04에서 빌드하였다.


PC를 교체하면서 최신 버전의 우분투 18.04를 설치하고 ALi 개발 환경을 구성하여 테스트 하였으나...

Host PC의 GCC 버전 문제로 MIPS toolchain이 정상적으로 빌드되지 않고 기타 다른 패키지 빌드에도 영향을 미쳐 우분투 18.04에 GCC 5.x 버전을 설치하였다.


ALi Linux 개발 환경은 Buildroot를 기반으로 구성되어 있고, Buildroot는 임베디드 시스템 개발에 필요한 수많은 패키지를 쉽게 추가하고 개발할 수 있는 시스템은 제공하고 있다. 쉽게 패키지를 추가하고 제거할 수 있는 장점이 있지만 단점은 임베디드 시스템 개발에 필요한 toolchain 및 host tool 모두를 매번 빌드하는 것이 최대 단점이다.


우분투 18.04에서 GCC 5.x 및 G++ 5.x 버전 설치는 apt를 사용하여 쉽게 설치가 가능하다.

sudo apt install gcc-5 g++-5

위와 같이 우분투 18.04에 GCC 5.x을 추가하여 gcc 및 g++는 두 가지 버전이 공존하고 있는 상태가 된다. 이럴 경우 link 파일로 패키지 버전 관리를 하는데, update-alternative 명령어를 사용하면 쉽게 패키지 버전 관리를 할 수 있다.


update-alternative을 사용하여 버전 관리할 패키지를 설정할 수 있다. 패키지가 버전 관리 되고 있지 않다면 --install 옵션을 사용하여 패키지 버전 관리하도록 하자.

sudo update-alternatives --install <link> <name> <path> <priority>
  • link
    해당 패키지의 경로를 포함한 실행파일 이름 e.g.) /usr/bin/gcc
  • name
    해당 패키지 대표 이름 e.g.) gcc
  • path
    해당 패키지 버전의 경로의 경로 e.g.) /usr/bin/gcc-5
  • priority
    자동모드인 경우 priority 높은 값을 우선해서 선택

다음은 GCC-5.x 및 GCC-7.x 패키지를 버전 관리하기 위해 gcc 및 g++를 생성한 예를 나타낸다.

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 20

위와 같이 버전 관리할 패키지를 생성하면 --config 옵션을 사용하여 버전 관리되는 패키지를 아래와 같이 볼 수 있다.

GCC 패키지는 GCC 7.x 및 GCC-5.x로 버전관리 되며, 현재는 GCC-5.x를 디폴트로 사용하고 있어 gcc는 gcc-5로 링크가 형성되어 있다.


댓글을 달아 주세요