Ta strona ma na celu zaoferowanie wskazówek, aby uniknąć niektórych typowych problemów podczas instalacji GCC, oficjalne dokumenty instalacyjne znajdują się w sekcji Installing GCC w głównej dokumentacji GCC. N.B. te dokumenty instalacyjne odnoszą się do trunk development, instrukcje instalacyjne dla wydanych wersji są zawarte w źródłach release.
Dla większości ludzi najprostszym sposobem na zainstalowanie GCC jest zainstalowanie pakietu stworzonego dla twojego systemu operacyjnego. Projekt GCC nie dostarcza gotowych binariów GCC, tylko kod źródłowy, ale wszystkie dystrybucje GNU/Linux zawierają pakiety dla GCC. Systemy oparte na BSD zawierają GCC w swoich zbiorach portów. Dla innych systemów operacyjnych strona Instalowanie GCC: Binarie zawiera listę źródeł binariów GCC pochodzących od stron trzecich.
Jeśli nie możesz znaleźć odpowiednich binarek dla swojego systemu, lub potrzebujesz nowszej wersji niż jest dostępna, będziesz musiał zbudować GCC ze źródła aby go zainstalować.
Budowanie GCC
Wiele osób spieszy się z próbą zbudowania GCC bez przeczytania dokumentacji instalacyjnej i popełnia jeden lub więcej z tych powszechnych błędów:
-
Nie uruchamiaj ./configure z wewnątrz katalogu źródłowego, to nie jest obsługiwane. Musisz uruchomić configure spoza katalogu źródłowego, w oddzielnym katalogu utworzonym dla kompilacji (to jest FAQ)
-
jeśli GCC dynamicznie łączy się z bibliotekami wspierającymi GMP, MPFR lub MPC, to odpowiednie biblioteki współdzielone muszą znajdować się w ścieżce dynamicznego linkera, zarówno podczas budowania gcc, jak i podczas używania zainstalowanego kompilatora (to także FAQ)
Biblioteki pomocnicze
Patrz Instalowanie GCC: Prequisites dla oprogramowania wymaganego do zbudowania GCC. Jeśli nie masz zainstalowanych bibliotek wspierających GMP, MPFR i MPC jako części systemu operacyjnego, są dwa proste sposoby postępowania i jeden trudny, podatny na błędy. Z jakiegoś powodu większość ludzi wybiera ten trudny sposób. Łatwe sposoby to:
-
Jeśli system operacyjny dostarcza wystarczająco aktualne wersje, użyj systemu zarządzania pakietami systemu operacyjnego, aby zainstalować biblioteki pomocnicze w standardowych lokalizacjach systemowych. Dla systemów opartych na Debianie, włączając Ubuntu, powinieneś zainstalować pakiety libgmp-dev, libmpfr-dev i libmpc-dev. W systemach opartych na RPM, włączając Fedorę i SUSE, należy zainstalować pakiety gmp-devel, mpfr-devel i libmpc-devel (lub mpc-devel na SUSE). Pakiety te zainstalują biblioteki i nagłówki w standardowych katalogach systemowych, aby mogły być automatycznie znalezione podczas budowania GCC.
-
Alternatywnie, po rozpakowaniu archiwum źródłowego GCC, wystarczy uruchomić skrypt ./contrib/download_prerequisites w katalogu źródłowym GCC. Spowoduje to pobranie bibliotek pomocniczych i utworzenie dowiązań symlinkowych, powodując ich automatyczną budowę jako część procesu kompilacji GCC. Ustaw GRAPHITE_LOOP_OPT=no w skrypcie jeśli chcesz zbudować GCC bez ISL, które jest potrzebne tylko dla opcjonalnych optymalizacji pętli Graphite.
Trudnym sposobem, który nie jest zalecany, jest pobranie źródeł dla GMP, MPFR i MPC, a następnie skonfigurowanie i zainstalowanie każdego z nich w niestandardowych lokalizacjach, następnie skonfigurować GCC z –with-gmp=/some/silly/path/gmp –with-mpfr=/some/silly/path/mpfr –with-mpc=/some/silly/path/mpc, następnie być zmuszonym do ustawienia LD_LIBRARY_PATH=/some/silly/path/gmp:/some/silly/path/mpfr:/some/silly/path/mpc/lib w twoim środowisku na zawsze. Jest to głupie i powoduje poważne problemy dla każdego, kto nie rozumie, jak dynamiczne linkery znajdują biblioteki w czasie uruchamiania. Nie rób tego. Jeśli budowanie GCC nie powiedzie się podczas używania którejkolwiek z opcji –with-gmp lub –with-mpfr lub –with-mpc, to prawdopodobnie nie powinieneś ich używać.
Konfiguracja
Zobacz Instalowanie GCC: Konfiguracja dla pełnej dokumentacji. Główną zaletą uruchamiania srcdir/configure spoza katalogu źródłowego (zamiast uruchamiania ./configure) jest to, że katalog źródłowy nie zostanie w żaden sposób zmodyfikowany, więc jeśli twoja kompilacja się nie powiedzie lub chcesz ponownie skonfigurować i zbudować ponownie, po prostu usuniesz wszystko z objdir i zaczniesz od nowa.
Na przykład, skonfigurowanie i zbudowanie GCC 4.6.2 (z obsługą C, C++, Fortran i Go) powinno być tak proste jak:
tar xzf gcc-4.6.2.tar.gzcd gcc-4.6.2./contrib/download_prerequisitescd ..mkdir objdircd objdir$PWD/../gcc-4.6.2/configure --prefix=$HOME/GCC-4.6.2 --enable-languages=c,c++,fortran,gomakemake install
Krok make zajmuje dużo czasu. Jeśli twój komputer ma wiele procesorów lub rdzeni, możesz go przyspieszyć budując równolegle używając make -j 2 (lub wyższej liczby dla większej równoległości).
Jeśli twój build nie powiedzie się, a twoje polecenie configure ma wiele skomplikowanych opcji, powinieneś spróbować usunąć opcje i zachować prostotę. Nie dodawaj wielu opcji configure, których nie rozumiesz, mogą one być powodem niepowodzenia kompilacji.