Ubuntu 16에 여러 버전의 GCC(GCC-3.3)를 설치하는 방법은 무엇입니까?

Ubuntu 16에 여러 버전의 GCC(GCC-3.3)를 설치하는 방법은 무엇입니까?

저는 Ubuntu를 처음 사용하며 일부 코드를 컴파일하기 위해 이전 버전(3.3)을 설치하고 싶습니다 gcc. 제가 사용하려고 하면

sudo apt-get install gcc-3.3

설치되어 있지 않습니다.

~$ sudo apt-get install gcc-3.3
sudo: /etc/sudoers.d is world writable
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'gcc-3.3-hppa64' for regex 'gcc-3.3'
The following packages were automatically installed and are no longer required:
  gfortran-5 libamd2.4.1 libbtf1.2.1 libcamd2.4.1 libccolamd2.9.1
  libcholmod3.0.6 libcsparse3.1.4 libcxsparse3.1.4 libgfortran-5-dev
  libklu1.3.3 libldl2.2.1 libspqr2.0.2 libumfpack5.7.1 openjdk-9-jdk-headless
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 10 not upgraded.

gcc나열된 사용 가능한 모든 버전 을 사용해 보면

 sudo apt-cache search gcc

3.3에는 기재되어 있지 않습니다 gcc. Ubuntu에 gcc 3.3을 설치하는 방법은 무엇입니까?

내 현재 gcc버전은 다음과 같습니다

~$ gcc --version
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

답변1

소스에서 GCC를 다운로드, 컴파일 및 설치

저는 보통 tar.gz하나를 얻습니다. gcc.gnu.org에 나열된 미러 사이트 중 하나에서 소스 코드를 얻을 수 있습니다. https://gcc.gnu.org/mirrors.html

tar -xf gcc-3.3.6.tar.gz
./configure --prefix=/usr/local/gcc-3.3.6
make
make install

"--prefix="를 적절하게 조정하십시오 /usr/local/gcc-3.3.6. 모든 것이 어디에 있는지 정확히 아는 것이 더 쉽습니다. 지정하지 않으면 기본값으로 설정될 것 같습니다./usr/local/bin

를 실행하면 ./configure --help사용 가능한 모든 옵션에 대한 설명을 얻을 수 있습니다. 을 prefix=실행할 때 설치 위치만 알 수 make install있으며, "prefix="가 지정되지 않은 경우 기본 설치 위치도 알려줍니다.

를 사용하는 경우 아래와 같이 --prefix=환경 변수에서 수행하는 모든 작업의 ​​로컬 설치를 재정의해야 합니다.PATHLD_LIBRARY_PATH

*for bash*
export PATH=/usr/local/gcc-3.3.6/bin:${PATH}
export LD_LIBRARY_PATH=/usr/local/gcc-3.3.6/lib:${LD_LIBRARY_PATH}

*for csh or tcsh*
setenv PATH /usr/local/gcc-3.3.6/bin:${PATH}
setenv LD_LIBRARY_PATH /usr/local/gcc-3.3.6/lib:${LD_LIBRARY_PATH}

새 터미널 창을 열거나 첫 번째 유형을 입력하세요.rehash

그러면 which gcc수동으로 명시적으로 사용하지 않고도 사용할 gcc의 버전을 알려줄 것입니다 /usr/local/gcc-3.3.6/bin/gcc.

LD_LIBRARY_PATH나중에 최신/이전 버전의 GCC로 컴파일된 실행 파일을 실행할 때마다 해당 GCC 버전으로 올바르게 설정되었는지 확인하세요 .

./configure단계에서는 누락된 전제 조건이 있는지 알 수 있으므로 첫 번째 시도에서 이 단계가 100% 성공하지 못하더라도 당황하지 마십시오. 해당 전제 조건을 다운로드하여 설치하거나 다음의 출력을 검토해야 합니다../configure --help

  • 이렇게 하면 여러 gcc 버전을 가질 수 있고 각 gcc를 별도로 설치할 수 있습니다.--prefix=
  • LD_LIBRARY_PATH조정 하고 그에 따라 PATH다음 중 하나를 사용하십시오.

답변2

여기에서 데비안 패키지를 다운로드할 수 있습니다.

http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-3.3/gcc-3.3_3.3.6-15ubuntu6_i386.deb

설치하고

sudo dpkg -i /path/to/package

답변3

것 같다Launchpad는 최신 버전의 gcc 3.3을 제공합니다.. 이것이 충분히 새로운 것인지는 모르겠지만 시도해 볼 가치가 있다고 생각합니다.

추가 설명이 필요한 경우 의견을 말해주세요.

답변4

/etc/apt/source에 Debian 저장소를 추가했습니다.

    deb     http://snapshot.debian.org/archive/debian/20070730T000000Z/ lenny main
deb-src http://snapshot.debian.org/archive/debian/20070730T000000Z/ lenny main
deb     http://snapshot.debian.org/archive/debian-security/20070730T000000Z/ lenny/updates main
deb-src http://snapshot.debian.org/archive/debian-security/20070730T000000Z/ lenny/updates main

그런 다음 다음을 사용하여 gcc를 검색합니다.

sudo apt-cache search gcc

그런 다음 gcc-3.3을 나열하고 설치했습니다.

sudo apt-get install gcc-3.3 g++-3.3

그런 다음 gcc 3.3을 선택하도록 gcc의 심볼릭 링크를 변경했습니다.

관련 정보