Chcę użyć niektórych funkcji C ++ dostępnych tylko w nowszych wersjach języka. Problem polega na tym, że Ubuntu 15.04 (Vivid Vervet) ma zainstalowany 4.9.2 i patrząc na wyniki, które otrzymuję z apt-get install gcc :
Reading package lists... Done
Building dependency tree
Reading state information... Done
gcc is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n]
Mówi, że to już najnowsza wersja. Nie rozumiem dlaczego ...
Odpowiedzi:
Jedyną opcją jest zbudowanie go ze źródeł , ponieważ używasz wersji Vivid (15.04), która osiągnęła EOL (End Of Life).
Pobierz kod źródłowy i jego wymagania wstępne:
Kompilacji źródeł (uwaga: ta komenda będzie się różnić w zależności od tego, gdzie początkowo zapisywane archiwum .bz2), można również zmodyfikować opcje dla
build
komendy. W tym przypadku użyjemy bardzo podstawowej opcji:UWAGA : Upewnij się, że przeczytałeś dokumenty, aby wyświetlić dostępną opcję.
Teraz jesteśmy gotowi do zbudowania gcc
Uruchom
make
polecenie, aby zbudować gcc, wykonanie tych kroków zajmie dużo czasu.Po zakończeniu powyższej fazy możesz zainstalować wbudowany gcc za pomocą:
Po zakończeniu tego procesu uruchom polecenie,
gcc --version
aby sprawdzić, czy instalacja zakończyła się pomyślnie.źródło
-v
oznaczać-verbose
. Więcej informacji odnosi się do tego, czym tak naprawdę jest verbose~/gcc-6.3.0
, do~/gcc-build
lub do innego folderu? Czy żaden z utworzonych folderów nie powinien zostać usunięty po uruchomieniu tych poleceń, czy wszystkie są nadal wymagane?tar xzvf gcc-6.3.0.tar.bz2
po prostu drukujegzip: stdin: not in gzip format
;tar: Child returned status 1
;tar: Error is not recoverable: exiting now
, więc rozpakowałem archiwum za pomocą menedżera archiwów.../gcc-6.3.0/configure -v --prefix=$HOME/gcc-6.3.0
, mam/usr/bin/ld: cannot find crt1.o: No such file or directory
,/usr/bin/ld: cannot find crti.o: No such file or directory
,/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc.a when searching for -lgcc
,/usr/bin/ld: cannot find -lgcc
i podobne błędy.Ubuntu 15.04 osiągnęło koniec życia i nie ma wsparcia, co oznacza, że nie będą już publikowane żadne aktualizacje ani poprawki (zabezpieczenia, błędy lub funkcje) .
Powinieneś zaktualizować lub zainstalować ponownie w nowszej wersji Ubuntu.
Polecam skorzystanie z wersji 16.10 (wsparcie 9 miesięcy), która ma już oddział gcc 6.x na oficjalnych transakcjach repo.
Ale możesz także skorzystać z 16.04 LTS (5 lat wsparcia) i dodać niezaufanego / nieudzielonego ppa, aby uzyskać najnowsze wersje gcc, takie jak ta
Osobiście wybrałbym wersję 16.10 i kontynuowałem aktualizację z oficjalnych kanałów do późniejszych wersji oprogramowania / Ubuntu bez dodawania (głównie) jakichkolwiek ppa.
źródło