Jak zainstalować gcc-4.8

94

Sprawdziłem wersję gcc w moim systemie.

Obecnie jest na 4.6.3. Przeczytałem, że gcc-4.8 jest niedostępny.

Próbowałem następujących poleceń bez powodzenia:

sudo apt-get install gcc (gcc is already the newest version)
sudo apt-get install gcc-4.8 (unable to locate package)

Czy ktoś wie, jak zainstalować ten pakiet 12.04?

MdT
źródło
Odpowiedź @ maggotbrain zadziałała dla mnie, chociaż musiałem dodać: sudo apt-get install gcc-multilib, gdy
napotkałem
2
Uwaga dla przyszłych pracowników: Jeśli pojawi się komunikat o błędzie, taki jak niezdefiniowane odniesienie do `lexer_line ', Jest to spowodowane brakującymi narzędziami: bison i flex sudo apt-get install bison sudo apt-get install flex, jak wskazano tutaj: http: // stackoverflow. com / pytania / 4262531 / problem-budowanie-gcc-4-6
virtualPN

Odpowiedzi:

119

Czy GCC-4.8 jest już dostępny w wersji 12.04 Precise?

Aktualizacja : od 6 maja 2013 r. Dostępna jest obecnie wersja gcc 4.8.1 dla 12.04 (precyzyjna) dostępna pod adresem https://launchpad.net/~ubuntu-toolchain-r/+archive/test .

Krótka odpowiedź brzmi: gcc-4.8jest obecnie dostępna w wersji 12.04 (Precyzyjne) za pośrednictwem PPA zestawu narzędzi lub poprzez kompilację źródła (szczegóły poniżej).

Ogłoszenie wydania

Zawiadomienie o uwolnienie gcc-4.8 został złożony w dniu 22 marca, więc prawdopodobnie nie będzie widząc to w oficjalnym repozytorium jeszcze.

Wygląda jednak na to, że Launchpad ma dostępny PPA dla kompilacji testu łańcucha narzędzi , który zawiera gcc-4.8, tutaj: https://launchpad.net/~ubuntu-toolchain-r/+archive/test

Zgodnie z dziennikiem zmian i listą pakietów istnieją debaty dla i386, amd64, arm i powerpc, które zostały zbudowane z myślą o wersji 13.04.

Najnowsza dostępna wersja gcc dla 12.04 to 4.8.1 i jest dostępna w zestawie narzędzi PPA.

Dodanie łańcucha narzędzi / testowego PPA:

Aby dodać PPA do systemu, otwórz terminal ( Ctrl+ Alt+ t) i uruchom następujące polecenia:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50

Zostaniesz również poproszony o zainstalowanie wielu sugerowanych pakietów. Te pakiety są zalecane, ale opcjonalne, do instalacji gcc-4.8.

Jakie funkcje C ++ są dostępne w gcc-4.8, które nie są dostępne w gcc-4.7.2?

  • Według GNU.ORG , gcc-4.7, obsługuje wiele funkcji C ++ 11 .
  • Począwszy od wersji gcc-4.8, gcc-4.7 nie obsługuje 8 z 64 funkcji (patrz Obsługa C ++ 0x / C ++ 11 w GCC )

  • Te funkcje to:

    Language Features
    - Rvalue references for *this
    - Generalized attributes
    - Alignment support
    - Inheriting constructors
    Concurreny
    - Bidirectional Fences
    - Memory model
    - Abandoning a process and at_quick_exit
    - Thread-local storage 
    
  • Aby zobaczyć pełną listę zmian w gcc-4.8, zobacz Changelist

Potrzebuję teraz tych funkcji gcc w wersji 12.04 Precise. Jak mogę je zdobyć?

Budowanie GCC-4.8 ze źródła:

Jeśli potrzebujesz gcc-4.8 już 12.04, jedyną opcją jest zbudowanie go ze źródła .

Przed instalacją przeczytaj często zadawane pytania dotyczące instalacji GCC .

Możesz pobrać gcc-4.8 z jednej ze stron lustrzanych gnu.org lub bezpośrednio z ich serwera SVN .

Oto przykład kroków kompilacji ze źródła ( dodatkowe informacje znajdziesz tutaj ). Pamiętaj, że mogą się one różnić w zależności od systemu i preferencji.

  1. Pobierz kod źródłowy

    • Utwórz katalog kompilacji ( mkdir gcc-build && cd gcc-build)
    • Pobierz plik źródłowy: wget http://www.netgull.com/gcc/releases/gcc-4.8.0/gcc-4.8.0.tar.bz2(dostosuj to polecenie, aby użyć odpowiedniej witryny lustrzanej .
    • Rozpakuj plik ( tar -xvjf <file name>)
  2. Zainstaluj dodatkowe biblioteki ( sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev libc6-dev)

  3. Skompiluj źródło: ./gcc-4.8.0/configure --prefix=/app/gcc/4.8.0
  4. Uruchom make(zajmie to trochę czasu. Idź napić się kawy lub upiec ciasteczka. ;-))
  5. Zainstaluj kod: sudo make install

Po zakończeniu tego procesu uruchom polecenie, gcc --versionaby sprawdzić, czy instalacja zakończyła się pomyślnie. Powinieneś zobaczyć coś podobnego do następującego wyniku:

maggotbrain@foucault:~$ gcc --version
gcc (Linaro 4.8.0) 4.8.0
Copyright (C) 2013 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.

Podsumowując: dziękuję wszystkim, którzy zapewniają łatwą instalację backportów Ubuntu. Daj im ciasteczka, które upiekłeś podczas biegania make. ;-)

Kevin Bowen
źródło
Doskonała odpowiedź, z wyjątkiem:E: Unable to locate package gcc-4.8
John Dibling,
2
Zainstalowanie dodatkowych bibliotek nie było dla mnie wystarczające, ale uruchomienie ./contrib/download_prerequisites.shgo naprawiło (z stackoverflow.com/questions/9253695/… ).
Gauthier
7
Uwaga: Musiałem także zainstalować pakiet g ++ - 4.8 (oprócz gcc-4.8), aby móc skompilować kod C ++. Inaczej było uzyskiwanie błąd kompilacji: gcc: error trying to exec 'cc1plus': execvp: No such file or directory 4.8.
Boris Dalstein,
Udało mi się zainstalować gcc4.8 na Precise
Homunculus Reticulli
1
@ John Dibling - Z pewnością ujawniona metoda instaluje pliki, jednak nigdy nie budujesz żadnego pakietu ani nie instalujesz żadnego ... stąd nie możesz go znaleźć (je) :-). Jest szybki sposób na automatyczne budowanie pakietów przy użyciu folderu debian z linku . Zrobiłem to z powodzeniem dla innych pakietów. To rozwiązanie zainstaluje wszystkie powiązane pakiety, w tym g ++ itp ...
Antonio
1

Więc odpowiedź powyżej działa, przynajmniej w przypadku instalacji ręcznej. Chociaż nawet później sudo make install, gccnadal działa tylko wersja zapasowa 4.6.3. Nawet próbuje gcc-4.8lub gcc-4.8.0nie działa. Bieganie /app/gcc/4.8.0/bin/gccwydaje się być jedyną rzeczą, która działa dla mnie. Chodzi mi o to, że jest kiepski, ale przynajmniej działa.

użytkownik149393
źródło
5
[: facepalm:] Zanim zaczniesz nazywać rzeczy „kiepskimi”, być może powinieneś uaktualnić swoją wiedzę na temat systemów operacyjnych. Możesz zacząć od przeczytania koncepcji ŚCIEŻKI: en.wikipedia.org/wiki/PATH_(variable)
pszilard
1
Oczywiście, ponieważ nie instalujesz żadnego pakietu za pomocą skryptu DEBIAN / postinst, musisz ręcznie ustawić domyślną wersję do użycia przez system za pomocą cmd aktualizacji-alternatywy . linia ... Jeśli użyłeś --prefix = / usr, nie musisz mieszać się ze ŚCIEŻKĄ ...
Antonio