linuxfromscratch:12.1:039-libstdc_from_gcc-13.2.0

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
linuxfromscratch:12.1:039-libstdc_from_gcc-13.2.0 [2024/05/10 08:24] baecylinuxfromscratch:12.1:039-libstdc_from_gcc-13.2.0 [2024/06/14 16:58] (현재) – [설정 옵션 설명] baecy
줄 1: 줄 1:
-====== 5.6. GCC-13.2.0의 Libstdc++ ====== +^  Linux From Scratch - Version 12.1-systemd  ^^^ 
-Libstdc++는 표준 C++ 라브러리입니다C++ 코드를 컴파일하는 데 필요하지만(GCC의 일부는 C++로 작성됨), Libstdc++는 대상 디렉터리에서 아직 사용할 수 없는 Glibc에 의존하므로 gcc-pass1을 빌드할 때 설치를 보류해야 했습니.+^  Chapter 5. Compiling a Cross-Toolchain  ^^^ 
 +|[[.:038-glibc-2.39|전]]  |  [[.:05-compiling_a_cross-toolchain|위]] / [[.:12.1|처음으]]  |  [[.:06-Cross Compiling Temporary Tools|음]]|
  
-**대략적인 빌드 시간:** 0.2 SBU +|Glibc-2.39  |  크로스 컴파일 임시 도구| 
-**필요한 디스크 공간:** 1.1 GB+ 
 +---- 
 + 
 +===== 5.6. GCC-13.2.0의 Libstdc++ ===== 
 + 
 +Libstdc++는 표준 C++ 라이브러리입니다. C++ 코드를 컴파일하는 데 필요하지만(GCC의 일부는 C++로 작성됨), Libstdc++는 대상 디렉터리에서 아직 사용할 수 없는 Glibc에 의존하므로 [[.:036-gcc-13.2.0_-_pass_1|gcc 1차]]를 빌드할 때 설치를 보류해야 했습니다. 
 + 
 +  * **빌드 시간:** 0.2 SBU 
 +  **디스크 공간:** 1.1 GB
  
 ----- -----
  
-===== 5.6.1. Libstdc++ 설치 ===== +==== 5.6.1. Libstdc++ 설치 ==== 
-<WRAP tip center round 90%> + 
-**참고** \\ Libstdc++는 GCC 소스의 일부입니다. 먼저 GCC의 압축을 풀고 ''gcc-13.2.0'' 디렉터리로 변경해야 합니다.+<WRAP info center round 90%> 
 +**참고** \\  
 +Libstdc++는 GCC 소스의 일부입니다. 먼저 GCC의 압축을 풀고 ''gcc-13.2.0'' 디렉터리로 변경해야 합니다.
 </WRAP> </WRAP>
  
-Libstdc++를 위한 별도의 빌드 디렉터리를 생성하고 그 디렉터리로 이동합니다. +Libstdc++ 빌드를 위한 별도의 디렉터리를 생성하고 그 디렉터리로 이동합니다. 
-<code lang=bash>+ 
 +<code bash>
 mkdir -v build mkdir -v build
-cd build+cd       build
 </code> </code>
  
-컴파일을 위해 Libstdc++를 준비합니다: +Libstdc++ 컴파일을 준비합니다
-<code lang=bash> + 
-../libstdc++-v3/configure \ +<code bash> 
-    --host=$LFS_TGT \ +../libstdc++-v3/configure           
-    --build=$(../config.guess) \ +    --host=$LFS_TGT                 
-    --prefix=/usr \ +    --build=$(../config.guess)      
-    --disable-multilib \ +    --prefix=/usr                   
-    --disable-nls \ +    --disable-multilib              
-    --disable-libstdcxx-pch \+    --disable-nls                   
 +    --disable-libstdcxx-pch         \
     --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/13.2.0     --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/13.2.0
 </code> </code>
-==== 구성 옵션의 의미 ==== 
-  * //--host=...// \\ 방금 빌드한 크로스 컴파일러를 /usr/bin에 있는 컴파일러 대신 사용하도록 지정합니다. 
-  * //--disable-libstdcxx-pch// \\ 이 단계에서는 필요하지 않은 미리 컴파일된 include 파일을 설치하지 않도록 합니다. 
-  * //--with-gxx-include-dir=/tools/$LFS_TGT/include/c++/13.2.0// \\ include 파일의 설치 디렉터리를 지정합니다. Libstdc++는 LFS용 표준 C++ 라이브러리이므로 이 디렉터리는 C++ 컴파일러(''$LFS_TGT-g++'')가 표준 C++ include 파일을 검색하는 위치와 일치해야 합니다. 일반적인 빌드에서는 이 정보가 최상위 디렉터리에서 Libstdc++ ''counfigure''옵션으로 자동 전달됩니다. 우리의 경우에는 이 정보를 명시적으로 제공해야 합니다. C++ 컴파일러는 include 파일 검색 경로에 시스템 루트 경로 ''$LFS''(GCC-pass1 빌드 시 지정)를 앞에 추가하므로 실제로는 ''$LFS/tools/$LFS_TGT/include/c++/13.2.0''에서 검색합니다. 아래 ''make install'' 명령에서 //DESTDIR// 변수와 이 스위치를 조합하면 헤더가 해당 경로에 설치됩니다. 
  
-Libstdc++를 컴파일합니다: +=== configure 옵션 설명 === 
-<code lang=bash>+ 
 +  * //**--host=...**// \\ 호스트의 ''/usr/bin''에 있는 컴파일러가 아닌 방금 빌드한 크로스 컴파일러를 사용하도록 지정합니다. 
 +  * //**--disable-libstdcxx-pch**// \\ 이 단계에서는 필요하지 않은 미리 컴파일된 include 파일을 설치하지 않도록 합니다. 
 +  * //**--with-gxx-include-dir=/tools/$LFS_TGT/include/c++/13.2.0**// \\ include 파일의 설치 디렉터리를 지정합니다. Libstdc++는 LFS용 표준 C++ 라이브러리이므로 이 디렉터리는 C++ 컴파일러(**$LFS_TGT-g++**)가 표준 C++ include 파일을 검색하는 위치와 일치해야 합니다. 일반적인 빌드에서는 이 정보가 최상위 디렉터리에서 Libstdc++ **counfigure**옵션으로 자동 전달됩니다. 우리의 경우에는 이 정보를 명시적으로 제공해야 합니다. C++ 컴파일러는 include 파일 검색 경로에 시스템 루트 경로 ''$LFS''(GCC 1차 빌드 시 지정)를 앞에 추가하므로 실제로는 ''$LFS/tools/$LFS_TGT/include/c++/13.2.0''에서 검색합니다. 아래 **make install** 명령에서 //DESTDIR// 변수와 이 스위치를 조합하면 헤더가 해당 경로에 설치됩니다. 
 + 
 +Libstdc++를 컴파일합니다. 
 + 
 +<code bash>
 make make
-</make+</code> 
-라이브러리를 설치합니다: + 
-<code lang=bash>+라이브러리를 설치합니다
 + 
 +<code bash>
 make DESTDIR=$LFS install make DESTDIR=$LFS install
 </code> </code>
-libtool archive 파일은 크로스 컴파일에 해롭기 때문에 제거합니다: + 
-<code lang=bash>+libtool archive 파일은 크로스 컴파일에 문제가 되기에 제거합니다
 + 
 +<code bash>
 rm -v $LFS/usr/lib/lib{stdc++{,exp,fs},supc++}.la rm -v $LFS/usr/lib/lib{stdc++{,exp,fs},supc++}.la
 </code> </code>
줄 49: 줄 69:
 ----- -----
  
-이 패키지에 대한 자세한 내용은 섹션 [[.:098-gcc-13.2.0|8.28.2"GCC의 내용]]"에 있습니다.+이 패키지에 대한 자세한 내용은 섹션 [[.:098-gcc-13.2.0#8.28.2. GCC 패키지 구성|8.28.2"GCC 패키지 구성"]]"에 있습니다.
  • linuxfromscratch/12.1/039-libstdc_from_gcc-13.2.0.1715329471.txt.gz
  • 마지막으로 수정됨: 2024/05/10 08:24
  • 저자 baecy