Deze pagina is bedoeld om richtlijnen te geven om enkele veel voorkomende problemen bij het installeren van GCC te voorkomen, de officiële installatie-docs staan in de Installing GCC sectie van de hoofddocumentatie van GCC. N.B. deze installatie-docs verwijzen naar de development trunk, de installatie-instructies voor vrijgegeven versies zijn opgenomen in de release sources.
Voor de meeste mensen is de eenvoudigste manier om GCC te installeren het installeren van een pakket dat voor uw besturingssysteem is gemaakt. Het GCC project levert geen vooraf gebouwde binaries van GCC, alleen broncode, maar alle GNU/Linux distributies bevatten pakketten voor GCC. De op BSD gebaseerde systemen bevatten GCC in hun ports collecties. Voor andere besturingssystemen geeft de Installing GCC: Binaries pagina een lijst van bronnen van derden met GCC binaries.
Als u geen geschikte binaries voor uw systeem kunt vinden, of u hebt een nieuwere versie nodig dan beschikbaar is, dan moet u GCC vanaf broncode bouwen om het te kunnen installeren.
Bouwen van GCC
Veel mensen proberen GCC te bouwen zonder de installatie-documenten goed te lezen en maken een of meer van deze veelgemaakte fouten:
-
draai ./configure niet vanuit de broncode-directory, dit wordt niet ondersteund. U moet configure buiten de broncode-directory uitvoeren, in een aparte directory die voor de build is gemaakt (dit is een FAQ)
-
als GCC dynamisch koppelt aan de GMP, MPFR- of MPC-ondersteuningsbibliotheken, dan moeten de betreffende gedeelde bibliotheken in het pad van de dynamische linker staan, zowel tijdens het bouwen van gcc als tijdens het gebruik van de geïnstalleerde compiler (dit is ook een FAQ)
Ondersteuningsbibliotheken
Zie Installatie van GCC: Prequisites voor de software die nodig is om GCC te bouwen. Als u de GMP-, MPFR- en MPC-ondersteuningsbibliotheken nog niet hebt geïnstalleerd als onderdeel van uw besturingssysteem, zijn er twee eenvoudige manieren om verder te gaan, en één moeilijke, foutgevoelige manier. Om de een of andere reden kiezen de meeste mensen de moeilijke manier. De eenvoudige manieren zijn:
-
Als het voldoende recente versies biedt, gebruikt u het pakketbeheersysteem van uw besturingssysteem om de ondersteunende bibliotheken op standaard systeemlocaties te installeren. Voor Debian-gebaseerde systemen, waaronder Ubuntu, moet u de pakketten libgmp-dev, libmpfr-dev en libmpc-dev installeren. Voor RPM-gebaseerde systemen, inclusief Fedora en SUSE, zou je de gmp-devel, mpfr-devel en libmpc-devel (of mpc-devel op SUSE) pakketten moeten installeren. Deze pakketten installeren de bibliotheken en headers in standaard systeemdirectories, zodat ze automatisch gevonden kunnen worden bij het bouwen van GCC.
-
Als alternatief kunt u na het uitpakken van het GCC-bronarchief gewoon het script ./contrib/download_prerequisites in de GCC-bronmap uitvoeren. Hiermee worden de ondersteuningsbibliotheken gedownload en symlinks aangemaakt, zodat ze automatisch worden gebouwd als onderdeel van het GCC-bouwproces. Zet GRAPHITE_LOOP_OPT=no in het script als u GCC wilt bouwen zonder ISL, dat alleen nodig is voor de optionele Graphite loop optimalisaties.
De moeilijke manier, die niet wordt aangeraden, is om de broncode voor GMP, MPFR en MPC te downloaden, deze vervolgens te configureren en te installeren op niet-standaard locaties, configureer dan GCC met –with-gmp=/some/silly/path/gmp –with-mpfr=/some/silly/path/mpfr –with-mpc=/some/silly/path/mpc, dan wordt je gedwongen om LD_LIBRARY_PATH=/some/silly/path/gmp in te stellen:/some/silly/path/mpfr:/some/silly/path/mpc/lib in je omgeving voor altijd in te stellen. Dit is dom en veroorzaakt grote problemen voor iedereen die niet begrijpt hoe dynamische linkers bibliotheken vinden tijdens runtime. Doe dit niet. Als het bouwen van GCC mislukt als je een van de –met-gmp of –met-mpfr of –met-mpc opties gebruikt, dan zou je ze waarschijnlijk niet moeten gebruiken.
Configuratie
Zie GCC installeren: Configuratie voor de volledige documentatie. Een groot voordeel van het uitvoeren van srcdir/configure van buiten de broncode-directory (in plaats van ./configure) is dat de broncode-directory op geen enkele manier wordt gewijzigd, dus als het bouwen mislukt of als u opnieuw wilt configureren en bouwen, verwijdert u gewoon alles in de objdir en begint u opnieuw.
Het configureren en bouwen van GCC 4.6.2 (met ondersteuning voor C, C++, Fortran en Go) zou bijvoorbeeld zo eenvoudig moeten zijn als:
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
De make stap neemt veel tijd in beslag. Als je computer meerdere processors of cores heeft, kun je het versnellen door parallel te bouwen met make -j 2 (of een hoger getal voor meer parallellisme).
Als het bouwen niet lukt en het configure commando veel ingewikkelde opties heeft, kun je proberen opties te verwijderen en het simpel te houden. Voeg geen configure opties toe die je niet begrijpt, ze kunnen de reden zijn dat je build mislukt.