5.8. Libstdc++ from GCC-9.2.0

Libstdc++은 표준 C++ 라이브러리이다. 이것은 C++ 코드를 컴파일할 때 필요하지만(GCC의 일부는 C++로 쓰여졌다), gcc-1단계를 빌드할 때는 설치를 미룰 수 밖에 없었다. 그 때는 아직 /tools에 없었던 glibc가 필요했기 때문이다.

예상 빌드 시간: 0.5 SBU
필요 디스크 공간: 878 MB

5.8.1. 대상 Libstdc++ 설치

[참고]

참고

Libstdc++는 GCC 소스의 일부이다. GCC tarball을 먼저 풀고 gcc-9.2.0 디렉토리로 이동해야 한다.

Libstdc++을 위한 별도의 디렉토리를 생성하고 이동하라:

mkdir -v build
cd       build

Libstdc++ 컴파일을 준비한다:

../libstdc++-v3/configure           \
    --host=$LFS_TGT                 \
    --prefix=/tools                 \
    --disable-multilib              \
    --disable-nls                   \
    --disable-libstdcxx-threads     \
    --disable-libstdcxx-pch         \
    --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/9.2.0

Configure 옵션들의 의미:

--host=...

/usr/bin에 있는 컴파일러 대신 방금 만든 크로스 컴파일러를 사용하도록 지시한다.

--disable-libstdcxx-threads

GCC 1단계가 스레드를 지원하지 않기 때문에 C++ 스레드 라이브러리도 지원되지 않는다.

--disable-libstdcxx-pch

이 단계에서 필요하지 않은 사전 컴파일된 include 파일의 설치를 방지한다.

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

C++ 컴파일러가 표준 include 파일을 검색하는 위치이다. 일반적으로는 이 정보가 최상위 디렉토리로부터 Libstdc++ configure 옵션으로 자동 전달된다. 때문에 우리는 이 주소를 명시적으로 입력해야 한다.

Libstdc++를 컴파일한다:

make

라이브러리를 설치한다:

make install

이 패키지에 대한 자세한 정보는 6.25.2절. “GCC의 내용.”에서 찾을 수 있다.