본문 바로가기

Server/Unix, Linux

CentOS gcc update

반응형

# Cent OS에서 gcc update하기.


우선 내가 사용하는 서버의 CentOS는 6.2 버전이다.


grep . /etc/*-release

6.2 기준에서 upgrade 전에는 버전이 아래와 같이 그냥 yum을 통해 업그레이드를 하면 4.4.6이 기본 제공으로 더 최근 버전으로 업데이트는 불가능 하였다.



하지만, c++11 옵션을 쓸 경우, 4.7 이상의 버전이 필요하다. 따라서 다음의 방법대로 하면 된다.

** 2단계부터는 관리자 권한, 즉 su로 root로 들어가거나, 아니면 앞에 반드시 sudo를 붙여서 해야한다.


1. 저장소 변경

CentOS의 저장소(repo)를 직접 변경해준다. (기본 저장소에서는 4.4.6밖에 안되기 때문에)


wget http://people.centos.org/tru/devtools-1.1/devtools-1.1.repo -P /etc/yum.repos.d


2. 옵션 변경

쉘 명령어를 통해 다음 옵션을 준다.


sh -c 'echo "enabled=1" >> /etc/yum.repos.d/devtools-1.1.repo'


3. 설치

저장소가 변경되었으니, 그냥 yum install을 이용해 설치한다. 다음과 같이 devtoolset-1.1을 설치하면 관련 패키지가 전부 설치된다.


yum install devtoolset-1.1


4. 추가 세팅

이제 다시 다음의 명령어를 통해 추가적인 세팅을 해 주면 된다.


scl enable devtoolset-1.1 bash


export CC=/opt/centos/devtoolset-1.1/root/usr/bin/gcc

export CPP=/opt/centos/devtoolset-1.1/root/usr/bin/cpp

export CXX=/opt/centos/devtoolset-1.1/root/usr/bin/c++


ln -s /opt/centos/devtoolset-1.1/root/usr/bin/* /usr/local/bin/

hash -r




나는 개인적으로 받은 코드를 돌려보기 위해서 11 옵션을 주기 위해 했는데, 바뀐점을 보니 C나 python이나 큰 차이가 없는 것 같다...
바뀐점을 확인하려면 다음의 링크를 따라 슬라이드를 확인해 보시길,

C++11 바뀐점 - 박민근


이제 gcc 버전을 확인하면 다음과 같이 나온다.




5. 11옵션 실행

이제 11 옵션을 줄 때는 다음과 같이 실행하면 된다.


g++ -std=c++11 mycode.cpp



6. include path 설정

11옵션을 실행하는 경우 아무 문제가 없이 실행이 되었지만,

다시 예전에 짜놓은 코드를 실행하니, stddef.h나 다른 기본 헤더파일을 찾지 못하는 문제가 발생했다.

이 경우 다음 글을 참고하여 path를 변경하면 된다.


ldconfig를 이용한 path 설정


반응형