Ubuntu에서 최신 GCC를 어떻게 사용합니까?


132

최신 버전의로 프로그램을 컴파일하고 싶습니다 gcc.

Ubuntu 14.04에는 gcc 4.8.2가 포함되어 있지만 4.9.0이 있으며 패키지로 사용할 수 있습니다 gcc-4.9. 나는 그것을 설치하려고

sudo apt-get install gcc-4.9

그러나 그것은 말한다

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'gcc-4.9-base' for regex 'gcc-4.9'
gcc-4.9-base is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

기본 설치가 아닌 이미 설치된 것처럼 보입니까? 프로그램을 빌드하기 위해 어떻게 활용합니까?


설치 gcc-4.8하려면을 사용해야 sudo apt-get install gcc-4.8합니다. gcc-4.9, gcc-4.8, gcc-4.7, gcc-4.6모두에 우분투 주요 REPO .

1
@Dumindu 그러나 어떻게 gcc-4.9구체적으로 사용 합니까?
Nickolai Leschov

다른 프로그램을 제거하고 4.9를 설치하십시오.

2
@Dumindu 잠깐만, 방금 내가 한 일을하라고 말 했니? 그것은 작동하지 않습니다.
Nickolai Leschov

루트 사용자로 전환 : sudo su -goto /usr/bin다음 ls -l gcc*출력 을 실행 하고 게시하십시오. 그런 다음 답변을 게시하겠습니다.
αғsнιη

답변:


196

gcc-4.9를 올바르게 설치하고 기본 gcc 버전 사용으로 설정하는 가장 좋은 방법은 다음과 같습니다.

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9 g++-4.9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9

--slave함께 g++, 발생할 g++따라 스위칭되도록 gcc동일한 버전. 그러나이 시점에서 gcc-4.9는에 구성된 유일한 버전 update-alternatives이므로 4.8을에 추가하십시오 update-alternatives. 따라서 실제로 다음을 사용하여 대안이 있습니다.

sudo apt-get install gcc-4.8 g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8

그런 다음 설정된 것을 확인하고 다음을 사용하여 앞뒤로 변경할 수 있습니다.

sudo update-alternatives --config gcc

참고 : PPA 리포지토리 설치를 건너 뛰고 사용할 수 /usr/bin/gcc-4.9-base있지만 새로 업데이트 된 툴체인을 사용하는 것이 좋습니다.


GCC의 5.X 또는 6, 패키지 (및 대응, 명령이) 단지이라고 들어 gcc-5, gcc-6등, 이것은 변화로 인해 GCC의 버전 방식 5.1이 처음 GCC 5 릴리스, 그리고 미래 5.X 출시 버그 수정 용 입니다.


@muru 편집에 감사드립니다 ... 아래에서 말했듯이, 나는 약 3 일 동안 매우 피곤했고 업데이트 대안은 sudo를 필요로하며 노예 전에 (-)를 잊어 버린 것 같습니다. :) 감사합니다.
SudoSURoot

시도sudo apt-get -f install
SudoSURoot

4
이것은 완벽하게 작동합니다. 또한, 교체 5를 위해에 4.9우분투 작업 GCC 5를 얻을 수 있습니다. (내 개발 팀은 이제 방법에 따라 4.9와 5를 함께 실행합니다.) 감사합니다. +1!
CodeMouse92

2
@hwat 그것은 gcc-6지금 작동합니다 .
edwinksl

1
이것은 여러 번 도움이되었지만 항상 잊어 버립니다. 사용할 수있는 GNU 컴파일러 컬렉션의 다른 유틸리티에 동일한 솔루션을 적용하십시오! 예를 들어 GCOV는 버전 불일치에 대해 불평하지 않으면 잘못된 데이터를 생성 할 수 있습니다.
Toby

23

사용 툴체인 테스트 PPA 구축 :

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9

우분투 14.04에서 GCC 4.9를 완전히 사용할 수 있다고 생각하지 않습니다. 기본 패키지 ( gcc-4.9-base ) 및 GCC Go 4.9 컴파일러 ( gccgo-4.9 )는 사용할 수 있지만 다른 프런트 엔드는 사용할 수 없습니다. 이유를 모르겠습니다.


1
@SudoSURoot 그것은 기본값으로 설정되거나 설정되지 않을 수도 있습니다, 그것은 내 관심사가 아닙니다 (다른 게시물이 있습니다). 그러나 GCC 4.9의 C 및 C ++ 프론트 엔드는 공식 저장소에서 14.04에 순수하게 설치할 수 있습니다. gcc-4.9-base패키지는 바이너리 프론트 엔드를 포함하지 않으며 포함하지 않기 때문에 특허가 허위 입니다.
muru

기본 패키지가 정확합니다. 내 답변에서 볼 수 있듯이 PPA를 사용했습니다. 먼저 의견을 게시 한 다음 질문에서 언급 한대로 질문에 대답했습니다. 단순히 PPA를 추가하고 4.9를 설치해도 "gcc 4.9"를 사용하는 데 필요한 기능을 사용할 수 없기 때문입니다. 질문에 답변 한 후에 댓글을 삭제해야합니다. 죄송합니다. 내 대답은 집중해야 할 것입니다. 나는 결론에 뛰어 들었고 ... 빠른 의견을 제시했다. 나는 전용 서버를 얻었으므로 14.04를 사용하여 실제로 아주 새롭습니다. 나는 투표하지 않았는지 확인하기 위해 노력하고 있으며, 만약 그렇다면 투표를 할 것입니다.
SudoSURoot

@SudoSURoot 좋아. 영업 이익은 호출에 문제가되지 않는 한 그렇다하더라도, gcc-4.9또는 g++-4.9대신 gcc또는 g++, 나는 대안을 업데이트하지 충실합니다.
muru

나는 완전히 이해한다. 그래도 많은 $ (which gcc) 및 $ (which g ++) 등을 사용하는 Android 시스템을 빌드합니다. 따라서 항상 기본값을 사용하려는 버전으로 설정해야합니다. 커널 코드 중 일부는 호스트 gcc-4.8로 컴파일되지 않으므로 업데이트해야했습니다. 방금 나를 위해 일한 것을 반복했습니다. 나에게 상기시켜 줘서 고마워요 ... 내가 편집에서 말한 것처럼, 마지막 코멘트에서, 나는 그것을 조기에 투표하면 수정했을 것입니다. 이 글을 올렸을 때 2 ~ 3 일 동안 커널 소스 작업을했습니다. 모두가 자신의 방법을 가지고 있습니다. 저는 방금 제 대답이 더 적은 질문을 덜 발견했습니다
SudoSURoot

최신 패키지는 gcc-7 ATM
Geek

5

우분투 16.04 이상

기본 저장소에서 우분투 18.04에 이미 gcc 7.0을 설치할 수 있습니다. Ubuntu 17.10, 18.04 및 18.10에 gcc-7을 설치하려면 터미널을 열고 다음을 입력하십시오.

sudo apt install gcc-7 

Ubuntu 18.04 이상에 gcc-8을 설치하려면 터미널을 열고 다음을 입력하십시오.

sudo apt install gcc-8

Ubuntu 19.04 이상에서 gcc-9를 설치하려면 터미널을 열고 다음을 입력하십시오.

sudo apt install gcc-9

ppa : jonathonf / gcc-7.1에서 우분투 16.04에 gcc-7을 설치할 수 있습니다.

sudo add-apt-repository ppa:jonathonf/gcc-7.1  
sudo apt update  
sudo apt install gcc-7  

ppa : jonathonf / gcc-8.0에서 우분투 16.04에 gcc-8을 설치할 수 있습니다.

sudo add-apt-repository ppa:jonathonf/gcc-8.0  
sudo apt update  
sudo apt install gcc-8 

3

특히 gcc 4.9를 호출하려면 gcc-4.9명령 프롬프트 에서을 사용 하십시오.

끝에 모든 하이픈과 버전 번호를 추가하여 설치 한 모든 gcc 버전을 개별적으로 호출 할 수 있습니다 gcc. 귀하의 경우, gcc-4.8gcc-4.9사용할 수 있습니다. 터미널에서 gcc-다른 버전이 설치되어 있는지 확인하려면 하이픈에주의하고 푸시 탭을 두 번 입력하십시오.

기본 gcc는 여전히 4.8 일 가능성이 있습니다. ( gcc -v이를 확인하는 데 사용하십시오 .) 업데이트 저장소 항목을 추가하지 않았기 때문에 기본 저장소에서 gcc-4.9를 설치 한 경우 기본값을 변경하는 것은 쉽지 않습니다. 기본값을 변경하는 방법에 관심 이 있다면이 질문에 대한 답변을 참조하십시오 .


makefile과 다른 빌드 인프라 빌드를 gcc-4.9사용 하는 대신 프로젝트를 어떻게 만들 수 gcc있습니까?
Nickolai Leschov

1
빌드 시스템에서 gcc-4.9가 사용되도록하는 가장 좋은 방법은 기본 gcc를 변경하는 것입니다. 이 작업을 수행하는 방법에 대한 답변에서 제공 한 링크를 따르십시오. 패키지 관리자가 gcc를 업데이트 할 때 불평 할 수 있으므로 최후의 수단을 제외 하고는이를 권장하지만 심볼릭 링크를 만들 수도 있습니다. 당신이 주장하는 경우 : sudo rm /usr/bin/gcc; sudo ln -s /usr/bin/gcc-4.9 /usr/bin/gcc. gcc-4.8 기본값으로 되돌리려면 gcc-4.9를 gcc-4.8로 바꾸십시오. g ++ 및 다른 GNU 컴파일러 에서도이 작업을 수행해야 할 수도 있습니다.
holocronweaver

GCC 4.9는 Ubuntu 14.04 ( GCC Go 컴파일러 제외)에서 사용할 수 없으므로이 답변은 Ubuntu 14.10에서 작동하지만 지금은 도움이되지 않습니다. :-)
Søren Løvborg

실제로 우분투 14.04에서 사용할 수 있지만 실수 일 수 있습니다 : packages.ubuntu.com/trusty/gcc-4.9-base . 4 월부터 사용하고 있습니다.
holocronweaver

0

OK 이것을 해봅시다 :

GCC   9 8 7 6 5 4
19.04 M D M M
18.10   D M M M
18.04 P M D M M
16.04 P P P P D M

모든 질문 :

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.