Geschatte compileertijd: 13.26 SBU Geschatte benodigde diskruimte: 221 MB |
Op dit package moet een patch worden toegepast voordat je het kan installeren. Zorg dat het is uitgepakt voordat je de installatie opdrachten uitvoert.
Van dit package is bekend dat het niet goed functioneert als je de optimalisatievlaggen hebt gewijzigd (waaronder de -march en -mcpu opties). GCC kan het beste met rust worden gelaten. Als je omgevingsvariabelen hebt gedefinieerd die standaard optimalisaties overschrijven, zoals CFLAGS en CXXFLAGS, dan raden we je aan deze voor het bouwen van Gcc uit te zetten of aan te passen. Je bent gewaarschuwd.
Installeer GCC door uitvoering van de volgende opdrachten. Met deze opdrachten worden de C en C++ compiler gebouwd. In het gcc package zijn nog andere compilers beschikbaar. Als je alle andere beschikbare compilers ook wilt bouwen, laat dan de optie --enable-languages=c,c++ achterwege in de configure opdracht. Zie de GCC documentatie voor meer details over welke extra compilers beschikbaar zijn.
Noot: de compilatie van andere compilers is niet getest door de mensen die actief aan LFS werken.
patch -Np1 -i ../gcc-3.2.patch && mkdir ../gcc-build && cd ../gcc-build && ../gcc-3.2/configure --prefix=/usr --enable-shared \ --enable-languages=c,c++ --enable-threads=posix \ --with-slibdir=/lib --enable-__cxa_atexit \ --enable-clocale=gnu && make bootstrap && make install && ln -s ../usr/bin/cpp /lib && ln -s ../bin/cpp /usr/lib && ln -s gcc /usr/bin/cc |
--enable-threads=posix: Dit activeert C++ exception handling voor multithreaded code.
--enable-__cxa_atexit: Deze optie zal resulteren in C++ shared library's en C++ programma's die uitwisselbaar zijn met andere linux distributies.
--enable-clocale=gnu: Er bestaat een risico dat een aantal mensen ABI incompatibele C++ libarary's zal installeren, als ze niet alle glibc localedata installeerden. Het gebruik van --enable-clocale=gnu garandeert dat in alle gevallen het "juiste" wordt gedaan. Als je deze opties niet wenst te gebruiken, bouw dan op z'n minst de de_DE locale. Wanneer GCC deze specifieke locale vindt, dan wordt de correcte locale modus (gnu) geïmplementeerd.
Als laatste vergeleken met versie 3.1.
c++, c++filt, cc (link naar gcc), cc1, cc1plus, collect2, cpp, cpp0, g++, gcc, gccbug, gcov en tradcpp0
Dit zijn C-compilers. Een compiler zet broncode om in tekstformaat naar een formaat dat een computer begrijpt. Nadat een broncodebestand is gecompileerd in een objectbestand, zal een linker een uitvoerbaar bestand van één of meer van deze met de compiler gegenereerde objectbestanden maken.
De C++ taal voorziet in function overloading, wat betekent dat het mogelijk is veel functies met dezelfde naam te schrijven (op voorwaarde dat elk parameters van verschillende types accepteert). Alle C++ functienamen worden gecodeerd in een low-level assembly label (dit proces staat bekend als mangling). Het programma c++filt doet het omgekeerde: het decodeert (demangles) low-level namen in namen op gebruikersniveau zodat de linker kan voorkomen dat deze overloaded functies met elkaar botsen.
cpp verwerkt een bronbestand voor, zoals het opnemen van de inhoudvan headerbestanden in het bronbestand. Voeg simpelweg een regel toe, zoals #include <bestandsnaam>, aan je bronbestand. De preprocessor zal de inhoud van het include bestand opnemen in het bronbestand.
gccbug is een shellscript welke wordt gebruikt om de aanmaak van foutrapportages te vereenvoudigen.
libiberty bestaat uit een verzameling subroutines gebruikt door diverse GNU programma's, waaronder getopt, obstack, strerror, strtol en strtoul.
libstdc++ is de C++ library. Het wordt gebruikt door C++ programma's en het bevat functies die frequent worden gebruikt in C++ programma's. Op deze wijze hoeft de programmeur bepaalde functies niet iedere keer opnieuw te schrijven (zoals het schrijven van een reeks tekens naar het scherm) wanneer hij een programma maakt.
Als laatste vergeleken met versie 2.95.3.
Bash: sh
Binutils: ar, as, ld, nm, ranlib
Diffutils: cmp
Fileutils: chmod, cp, ln, ls, mkdir, mv, rm, touch
Find: find
Gcc: cc, cc1, collect2, cpp0, gcc
Grep: egrep, grep
Make: make
Patch: patch
Sed: sed
Sh-utils: basename, dirname, echo, expr, hostname, sleep, true, uname
Tar: tar
Texinfo: install-info, makeinfo
Textutils: cat, tail, tr