차이

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

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
linuxfromscratch:12.1:057-gcc-13.2.0_-_pass_2 [2024/06/08 07:46] baecylinuxfromscratch:12.1:057-gcc-13.2.0_-_pass_2 [2024/06/16 23:45] (현재) – [6.18.1. GCC 설치] baecy
줄 7: 줄 7:
 ------  ------ 
  
-===== 6.18. GCC-13.2.0 - 2차 설치 =====+===== 6.18. GCC-13.2.0 - 2차 =====
  
 GCC 패키지에는 C 컴파일러와 C++ 컴파일러가 포함된 GNU 컴파일러 컬렉션이 포함되어 있습니다. GCC 패키지에는 C 컴파일러와 C++ 컴파일러가 포함된 GNU 컴파일러 컬렉션이 포함되어 있습니다.
줄 20: 줄 20:
 GCC의 첫 번째 빌드에서와 마찬가지로 GMP, MPFR 및 MPC 패키지가 필요합니다. 타르볼의 압축을 풀고 디렉터리 이름을 변경합니다. GCC의 첫 번째 빌드에서와 마찬가지로 GMP, MPFR 및 MPC 패키지가 필요합니다. 타르볼의 압축을 풀고 디렉터리 이름을 변경합니다.
  
-<code lang=bash>+<code bash>
 tar -xf ../mpfr-4.2.1.tar.xz tar -xf ../mpfr-4.2.1.tar.xz
-mv -v mpfr-4.2.1 mpfr 
 tar -xf ../gmp-6.3.0.tar.xz tar -xf ../gmp-6.3.0.tar.xz
-mv -v gmp-6.3.0 gmp 
 tar -xf ../mpc-1.3.1.tar.gz tar -xf ../mpc-1.3.1.tar.gz
 +mv -v mpfr-4.2.1 mpfr
 +mv -v gmp-6.3.0 gmp
 mv -v mpc-1.3.1 mpc mv -v mpc-1.3.1 mpc
 </code> </code>
줄 31: 줄 31:
 x86_64에서 빌드하는 경우 64비트 라이브러리의 기본 디렉터리 이름을 "lib"로 변경합니다. x86_64에서 빌드하는 경우 64비트 라이브러리의 기본 디렉터리 이름을 "lib"로 변경합니다.
  
-<code lang=bash>+<code bash>
 case $(uname -m) in case $(uname -m) in
   x86_64)   x86_64)
줄 42: 줄 42:
 POSIX 스레드를 지원하는 라이브러리를 빌드할 수 있도록 libgcc 및 libstdc++ 헤더의 빌드 규칙을 재정의합니다. POSIX 스레드를 지원하는 라이브러리를 빌드할 수 있도록 libgcc 및 libstdc++ 헤더의 빌드 규칙을 재정의합니다.
  
-<code lang=bash>+<code bash>
 sed '/thread_header =/s/@.*@/gthr-posix.h/' \ sed '/thread_header =/s/@.*@/gthr-posix.h/' \
     -i libgcc/Makefile.in libstdc++-v3/include/Makefile.in     -i libgcc/Makefile.in libstdc++-v3/include/Makefile.in
 </code> </code>
  
-분리된 빌드 디렉터리를 생성합니다.+별도의 빌드 디렉터리를 생성합니다.
  
-<code lang=bash>+<code bash>
 mkdir -v build mkdir -v build
 cd       build cd       build
줄 58: 줄 58:
 이제 컴파일을 위해 GCC를 준비합니다. 이제 컴파일을 위해 GCC를 준비합니다.
  
-<code lang=bash>+<code bash>
 ../configure                                       \ ../configure                                       \
     --build=$(../config.guess)                     \     --build=$(../config.guess)                     \
줄 79: 줄 79:
 </code> </code>
  
-=== 설정 옵션 설명 ===+=== configure 옵션 설명 ===
  
   * //--with-build-sysroot=$LFS// \\ 일반적으로 //--host//를 사용하면 크로스 컴파일러가 GCC 빌드에 사용되며, 해당 컴파일러는 $LFS에서 헤더와 라이브러리를 찾아야 한다는 것을 알고 있습니다. 그러나 GCC 빌드 시스템은 이 위치를 인식하지 못하는 다른 도구도 사용합니다. 이 스위치는 이러한 도구가 호스트가 아닌 $LFS에서 필요한 파일을 찾도록 하기 위해 필요합니다.   * //--with-build-sysroot=$LFS// \\ 일반적으로 //--host//를 사용하면 크로스 컴파일러가 GCC 빌드에 사용되며, 해당 컴파일러는 $LFS에서 헤더와 라이브러리를 찾아야 한다는 것을 알고 있습니다. 그러나 GCC 빌드 시스템은 이 위치를 인식하지 못하는 다른 도구도 사용합니다. 이 스위치는 이러한 도구가 호스트가 아닌 $LFS에서 필요한 파일을 찾도록 하기 위해 필요합니다.
줄 88: 줄 88:
 패키지를 컴파일합니다. 패키지를 컴파일합니다.
  
-<code lang=bash>+<code bash>
 make make
 </code> </code>
줄 94: 줄 94:
 패키지를 설치합니다. 패키지를 설치합니다.
  
-<code lang=bash>+<code bash>
 make DESTDIR=$LFS install make DESTDIR=$LFS install
 </code> </code>
줄 100: 줄 100:
 마지막으로 유용한 심볼릭 링크를 생성합니다. 많은 프로그램과 스크립트는 **gcc** 대신 **cc**를 실행하는데, 이는 프로그램을 범용적으로 유지하고, GNU C 컴파일러가 항상 설치되어 있지 않은 모든 종류의 UNIX 시스템에서 사용할 수 있도록 합니다. 시스템 관리자가 사용할 C 컴파일러를 **cc**를 실행해서 원하는 대로 결정할 수 있습니다. 마지막으로 유용한 심볼릭 링크를 생성합니다. 많은 프로그램과 스크립트는 **gcc** 대신 **cc**를 실행하는데, 이는 프로그램을 범용적으로 유지하고, GNU C 컴파일러가 항상 설치되어 있지 않은 모든 종류의 UNIX 시스템에서 사용할 수 있도록 합니다. 시스템 관리자가 사용할 C 컴파일러를 **cc**를 실행해서 원하는 대로 결정할 수 있습니다.
  
-<code lang=bash>+<code bash>
 ln -sv gcc $LFS/usr/bin/cc ln -sv gcc $LFS/usr/bin/cc
 </code> </code>
줄 106: 줄 106:
 ------ ------
  
-이 패키지에 대한 자세한 내용은 [[.: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/057-gcc-13.2.0_-_pass_2.1717832814.txt.gz
  • 마지막으로 수정됨: 2024/06/08 07:46
  • 저자 baecy