Linux Mint에 GCC의 최신 안정 버전을 설치하는 방법은 무엇입니까?

Linux Mint에 GCC의 최신 안정 버전을 설치하는 방법은 무엇입니까?

Linux Mint 17.3에 최신 버전의 GCC(GNU Compiler Collection)를 설치하고 싶습니다. 현재는 g++ --version4.8.4로 돌아가고 최신 안정 버전은 5.3입니다.

답변1

Linux Mint에는 GCC 패키지가 미리 설치되어 있습니다. 따라서 먼저 터미널에 다음 명령을 입력하여 패키지가 시스템에 이미 존재하는지 확인하는 것이 좋습니다.

apt-cache search gcc

해당 패키지가 없으면 먼저 터미널에서 다음 명령을 사용하여 다음 저장소를 추가하십시오.

sudo add-apt-repository ppa:ubuntu-toolchain-r/test

그런 다음 다음 명령을 사용하십시오.

sudo apt-get update
sudo apt-get install g++-4.7 c++-4.7

우리가 배워야 할 몇 가지 기본 사항이 항상 있습니다. Linux를 사용하기 전에 이를 전제 조건으로 삼으세요. Google 검색을 배우세요... 더 열심히 검색해 보세요...

답변2

최신 버전의 gcc를 다운로드하세요.

wget http://www.netgull.com/gcc/releases/gcc-5.3.0/gcc-5.3.0.tar.bz2

사용명령: tar -xjf파일의 압축을 푼다

와 같이 방금 압축을 푼 디렉터리를 입력하고 $HOME/Downloads/gcc-5.3.0다음 명령을 입력합니다.

./configure --disable-checking --enable-languages=c,c++,objc 
--disable-multilib --with-system-zlib prefix=/usr/bin/gcc-5.3

종속성 설치: GCC를 구축하려면 GMP4.2+, MPFR 2.4.0+ 및 MPC 0.8.0+가 필요하며 구축에 필요합니다.

sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev libc6-dev
sudo apt-get install build-essential

C++ 컴파일러 설치

sudo apt-get install g++

다음 유형:

make 
sudo make install

편집하다 "zlib.h를 찾을 수 없습니다!"와 같은 오류 메시지가 계속 나타나면 다음을 수행하여 문제를 해결할 수 있습니다.

apt-get install zlib1g-dev

답변3

항상 최신 제품이 나오기 때문에 무엇이 최신인지 잘 모르겠습니다. 하지만 이 방법으로 무엇이든 설치할 수 있습니다.

gcc-8을 예로 들어보겠습니다.

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-8 g++-8
gcc-8 --version

더 높은 우선순위 gcc-8/g++-8(이 예에서는 20)을 선택하려면 다음도 필요합니다.

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 20 --slave /usr/bin/g++ g++ /usr/bin/g++-8

답변4

솔직히 말해서 17.3을 버리기에는 너무 게으른 편입니다. 저에게는 효과적입니다. 즉, 여전히 업데이트된 gcc가 필요합니다. 나는 다른 대상에 대해 반복적으로 컴파일하기 위해 수정하고 실행하는 bash 스크립트(아래 참조)를 가지고 있습니다(나는 내 ​​자신의 장난감 OS를 작성하고 있으므로 특별히 생성된 gcc를 사용해야 합니다).

다음 스크립트의 디렉터리를 현재 디렉터리와 일치하도록 변경합니다. 컴파일된 버전과 시스템 버전 사이를 쉽게 전환할 수 있도록 컴파일된 버전을 자체 디렉터리에 보관합니다. 나는 당신이 이것을 할 것을 제안합니다. binutils-2.23.2와 관심 있는 gcc 버전을 다운로드해야 합니다(아래에서는 7.1.0을 사용하고 있습니다). 아래 스크립트와 함께 ~/contrib 디렉터리에 배치하세요.

"--enabled-언어s=c" 줄을 "--enabled-언어s=c,c++,objc"로 변경할 수도 있습니다. 내 프로젝트에는 C만 필요합니다. 또 다른 변화는 PLATFORM의 가치입니다. "i686-elf"를 사용했지만 작동하지 않습니다(아래에서 32비트 플랫폼용으로 변경했습니다). 64비트 플랫폼의 경우 "x86_64-linux-gnu"를 사용해 볼 수 있습니다.

단지 호기심에서 - 이렇게 빌드한 이유는 gcc 빌드 프로세스에 소스 디렉터리에서 다시 빌드할 수 없는 버그가 있었기 때문입니다. 이 버그가 여전히 존재하는지 모르겠지만(지난번 4.8.0에서 이 버그가 발생했습니다), 유일한 해결 방법은 다시 빌드하려는 경우 별도의 디렉터리에 명시적으로 빌드하는 것입니다.

[편집: 위에 제안된 GAD3R 종속성 설치 수행]

#!/bin/bash

function die() {
   echo $1
   exit 127
}


export PREFIX=/home/lelanthran/opt/cross
export TARGET=i686-linux-gnu
export PATH="$PREFIX/bin:$PATH"

pushd $PWD &> /dev/null
mkdir -p build-binutils
cd build-binutils
../binutils-2.23.2/configure \
   --target=$TARGET \
   --prefix="$PREFIX" \
   --with-sysroot \
   --disable-nls \
   --disable-werror || die "binutils/config error"
make           || die "binutils/make error"
make install   || die "binutils/make install error"

popd &> /dev/null

pushd $PWD &> /dev/null
mkdir -p build-gcc-7.1.0
cd build-gcc-7.1.0
../gcc-7.1.0/configure \
   --target=$TARGET \
   --prefix="$PREFIX" \
   --disable-nls \
   --enable-languages=c \
   --without-headers || die "gcc/config error"
make all-gcc                  || die "gcc/make all-gcc error"
make all-target-libgcc        || die "gcc/make all-target-libgcc error"
make install-gcc              || die "gcc/make install-gcc error"
make install-target-libgcc    || die "gcc/make install-target-libgcc error"

관련 정보