Detaljer om denne pakken finner du i Section 8.29.2, “Innhold i GCC”
Libstdc++ er standard C++ biblioteket. Det trengs for å kompilere C++ kode (en del av GCC er skrevet i C++), men vi måtte utsette installasjonen da vi bygde gcc-pass1 fordi Libstdc++ avhenger av Glibc, som ennå ikke var tilgjengelig i målmappen.
Libstdc++ er en del av GCC
kildene. Du bør først pakke ut GCC tarball og bytte til
gcc-14.2.0
mappen.
Opprett en egen byggemappe for libstdc++ og gå inn i den:
mkdir -v build cd build
Forbered libstdc++ for kompilering:
../libstdc++-v3/configure \ --host=$LFS_TGT \ --build=$(../config.guess) \ --prefix=/usr \ --disable-multilib \ --disable-nls \ --disable-libstdcxx-pch \ --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/14.2.0
Betydningen av konfigureringsalternativene:
--host=...
Spesifiserer at krysskompilatoren vi nettopp har bygget skal
brukes i stedet for den i /usr/bin
.
--disable-libstdcxx-pch
Denne bryteren forhindrer installasjon av forhåndskompilerte include filer som ikke er nødvendige på dette stadiet.
--with-gxx-include-dir=/tools/$LFS_TGT/include/c++/14.2.0
Dette spesifiserer installasjonsmappen for include filer.
Fordi libstdc++ er standard C++ biblioteket for LFS, skal
denne mappen samsvare med plasseringen der C++ kompilatoren
($LFS_TGT-g++)
vil søke etter standard C++ include filer. I en normal
konstruksjon, sendes denne informasjonen automatisk til
libstdc++ configure alternativer fra
toppnivåmappen. I vårt tilfelle, denne informasjonen må gis
eksplisitt. C++ kompilatoren vil legge til sysroot banen
$LFS
(spesifisert når GCC pass
1 ble bygget) til å inkludere filsøkebanen, så den vil
faktisk søke i $LFS/tools/$LFS_TGT/include/c++/14.2.0
.
Kombinasjonen av DESTDIR
variabelen (i
make install
kommandoen nedenfor) og denne bryteren sørger for å
installere deklarasjonene der.
Kompiler libstdc++ ved å kjøre:
make
Installer biblioteket:
make DESTDIR=$LFS install
Fjern libtool arkivfilene fordi de er skadelige for krysskompilering:
rm -v $LFS/usr/lib/lib{stdc++{,exp,fs},supc++}.la
Detaljer om denne pakken finner du i Section 8.29.2, “Innhold i GCC”