5.6. Libstdc++ from GCC-11.2.0, Pass 1

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 det avhenger av glibc, som ennå ikke var tilgjengelig i mål mappen.

Omtrentlig byggetid: 0.4 SBU
Nødvendig diskplass: 818 MB

5.6.1. Installation of Target Libstdc++

[Note]

Note

Libstdc++ er en del av GCC kildene. Du bør først pakke ut GCC tarball og bytte til gcc-11.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++/11.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 inkluderte forhåndskompilerte filer som ikke er nødvendige på dette stadiet.

--with-gxx-include-dir=/tools/$LFS_TGT/include/c++/11.2.0

Dette spesifiserer installasjonsmappen for inkluderende filer. Fordi libstdc++ er standard C++-biblioteket for LFS, skal denne mappen samsvare med plasseringen der C++-kompilatoren ($LFS_TGT-g++) ville søke etter standard C++ inkludererende 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 bygning GCC passerer 1) til inkludere filsøkebanen, så den vil faktisk søke i $LFS/tools/$LFS_TGT/include/c++/11.2.0. Kombinasjonen av DESTDIR variabel (i make install kommando nedenfor) og denne bryteren sørger for å installere deklarasjonene der.

Kompiler libstdc++ ved å kjøre:

make

Installer biblioteket:

make DESTDIR=$LFS install

Detaljer om denne pakken finner du i Section 8.26.2, “Innhold i GCC.”