차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
다음 판 | 이전 판 | ||
linuxfromscratch:12.1:036-gcc-13.2.0_-_pass_1 [2024/04/16 16:04] – 만듦 - 바깥 편집 127.0.0.1 | linuxfromscratch:12.1:036-gcc-13.2.0_-_pass_1 [2024/06/16 23:00] (현재) – [5.3.1. Cross GCC 설치] baecy | ||
---|---|---|---|
줄 1: | 줄 1: | ||
+ | ^ Linux From Scratch - Version 12.1-systemd | ||
+ | ^ Chapter 5. Compiling a Cross-Toolchain | ||
+ | |[[.: | ||
+ | |Binutils-2.42 - 1차 | Linux-6.7.4 API Headers| | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====== 5.3. GCC-13.2.0 - 1차 ====== | ||
+ | |||
+ | GCC 패키지에는 C 컴파일러와 C++ 컴파일러가 포함된 GNU 컴파일러 컬렉션이 포함되어 있습니다. | ||
+ | |||
+ | * **빌드 시간:** 3.8 SBU | ||
+ | * **디스크 공간:** 4.1 GB | ||
+ | |||
+ | ------ | ||
+ | |||
+ | ==== 5.3.1. Cross GCC 설치 ==== | ||
+ | |||
+ | GCC를 사용하려면 GMP, MPFR 및 MPC 패키지가 필요합니다. 이러한 패키지는 호스트 배포에 포함되지 않을 수 있으므로 GCC로 빌드됩니다. 각 패키지의 압축을 GCC 소스 디렉터리에 풀고 디렉터리의 이름을 변경하여 GCC 빌드 중에 자동으로 사용할 수 있도록 하세요. | ||
+ | |||
+ | <WRAP info round center 90%> | ||
+ | **참고** \\ | ||
+ | 이 장에 대해 자주 오해하는 경우가 있습니다. 절차는 앞서 설명한 대로 다른 모든 챕터와 동일합니다([[.: | ||
+ | </ | ||
+ | |||
+ | <code bash> | ||
+ | tar -xf ../ | ||
+ | mv -v mpfr-4.2.1 mpfr | ||
+ | tar -xf ../ | ||
+ | mv -v gmp-6.3.0 gmp | ||
+ | tar -xf ../ | ||
+ | mv -v mpc-1.3.1 mpc | ||
+ | </ | ||
+ | |||
+ | x86_64 호스트에서는 64비트 라이브러리의 기본 디렉터리 이름을 " | ||
+ | |||
+ | <code bash> | ||
+ | case $(uname -m) in | ||
+ | x86_64) | ||
+ | sed -e '/ | ||
+ | -i.orig gcc/ | ||
+ | ;; | ||
+ | esac | ||
+ | </ | ||
+ | |||
+ | GCC 문서에서는 별도의 디렉터리에 GCC를 빌드할 것을 권장합니다. | ||
+ | |||
+ | <code bash> | ||
+ | mkdir -v build | ||
+ | cd build | ||
+ | </ | ||
+ | |||
+ | GCC 컴파일을 준비합니다. | ||
+ | |||
+ | <code bash> | ||
+ | ../ | ||
+ | --target=$LFS_TGT | ||
+ | --prefix=$LFS/ | ||
+ | --with-glibc-version=2.39 \ | ||
+ | --with-sysroot=$LFS | ||
+ | --with-newlib | ||
+ | --without-headers | ||
+ | --enable-default-pie | ||
+ | --enable-default-ssp | ||
+ | --disable-nls | ||
+ | --disable-shared | ||
+ | --disable-multilib | ||
+ | --disable-threads | ||
+ | --disable-libatomic | ||
+ | --disable-libgomp | ||
+ | --disable-libquadmath | ||
+ | --disable-libssp | ||
+ | --disable-libvtv | ||
+ | --disable-libstdcxx | ||
+ | --enable-languages=c, | ||
+ | </ | ||
+ | |||
+ | === configure 옵션 설명 === | ||
+ | |||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | |PIE 및 SSP에 대한 메모]]에서 확인할 수 있습니다). 컴파일러는 임시 실행 파일만 생성하므로 이 단계에서는 꼭 필요한 것은 아닙니다. 하지만 임시 패키지를 가능한 한 최종 패키지에 가깝게 만드는 것이 더 깔끔합니다. | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | |||
+ | GCC를 컴파일합니다. | ||
+ | |||
+ | <code bash> | ||
+ | make | ||
+ | </ | ||
+ | |||
+ | 패키지를 설치합니다. | ||
+ | |||
+ | <code bash> | ||
+ | make install | ||
+ | </ | ||
+ | |||
+ | 이 GCC 빌드는 몇 가지 내부 시스템 헤더를 설치했습니다. 일반적으로 그 중 하나인 '' | ||
+ | |||
+ | <WRAP info round center 90%> | ||
+ | **참고** \\ | ||
+ | 아래 명령은 '' | ||
+ | </ | ||
+ | |||
+ | <code bash> | ||
+ | cd .. | ||
+ | cat gcc/ | ||
+ | `dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/ | ||
+ | </ | ||
+ | |||
+ | ----- | ||
+ | |||
+ | 이 패키지의 상세한 내용은 [[.: |