차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
다음 판 | 이전 판 | ||
linuxfromscratch:12.1:057-gcc-13.2.0_-_pass_2 [2024/04/16 16:04] – 만듦 - 바깥 편집 127.0.0.1 | linuxfromscratch:12.1:057-gcc-13.2.0_-_pass_2 [2024/06/16 23:45] (현재) – [6.18.1. GCC 설치] baecy | ||
---|---|---|---|
줄 1: | 줄 1: | ||
+ | ^ Linux From Scratch - Version 12.1-systemd | ||
+ | ^ Chapter 6. Cross Compiling Temporary Tools ^^^ | ||
+ | |[[.: | ||
+ | |Binutils-2.42 - 2차 | 가상 루트 환경에서 추가적인 임시 도구 구성| | ||
+ | |||
+ | ------ | ||
+ | |||
+ | ===== 6.18. GCC-13.2.0 - 2차 ===== | ||
+ | |||
+ | GCC 패키지에는 C 컴파일러와 C++ 컴파일러가 포함된 GNU 컴파일러 컬렉션이 포함되어 있습니다. | ||
+ | |||
+ | * **빌드 시간:** 4.4 SBU | ||
+ | * **디스크 공간:** 4.8 GB | ||
+ | |||
+ | ----- | ||
+ | |||
+ | ==== 6.18.1. GCC 설치 ==== | ||
+ | |||
+ | GCC의 첫 번째 빌드에서와 마찬가지로 GMP, MPFR 및 MPC 패키지가 필요합니다. 타르볼의 압축을 풀고 디렉터리 이름을 변경합니다. | ||
+ | |||
+ | <code bash> | ||
+ | tar -xf ../ | ||
+ | tar -xf ../ | ||
+ | tar -xf ../ | ||
+ | mv -v mpfr-4.2.1 mpfr | ||
+ | mv -v gmp-6.3.0 gmp | ||
+ | mv -v mpc-1.3.1 mpc | ||
+ | </ | ||
+ | |||
+ | x86_64에서 빌드하는 경우 64비트 라이브러리의 기본 디렉터리 이름을 " | ||
+ | |||
+ | <code bash> | ||
+ | case $(uname -m) in | ||
+ | x86_64) | ||
+ | sed -e '/ | ||
+ | -i.orig gcc/ | ||
+ | ;; | ||
+ | esac | ||
+ | </ | ||
+ | |||
+ | POSIX 스레드를 지원하는 라이브러리를 빌드할 수 있도록 libgcc 및 libstdc++ 헤더의 빌드 규칙을 재정의합니다. | ||
+ | |||
+ | <code bash> | ||
+ | sed '/ | ||
+ | -i libgcc/ | ||
+ | </ | ||
+ | |||
+ | 별도의 빌드 디렉터리를 생성합니다. | ||
+ | |||
+ | <code bash> | ||
+ | mkdir -v build | ||
+ | cd build | ||
+ | </ | ||
+ | |||
+ | GCC 빌드를 시작하기 전에 최적화 플래그를 재정의하는 환경 변수((CFLAGS, | ||
+ | |||
+ | 이제 컴파일을 위해 GCC를 준비합니다. | ||
+ | |||
+ | <code bash> | ||
+ | ../ | ||
+ | --build=$(../ | ||
+ | --host=$LFS_TGT | ||
+ | --target=$LFS_TGT | ||
+ | LDFLAGS_FOR_TARGET=-L$PWD/ | ||
+ | --prefix=/ | ||
+ | --with-build-sysroot=$LFS | ||
+ | --enable-default-pie | ||
+ | --enable-default-ssp | ||
+ | --disable-nls | ||
+ | --disable-multilib | ||
+ | --disable-libatomic | ||
+ | --disable-libgomp | ||
+ | --disable-libquadmath | ||
+ | --disable-libsanitizer | ||
+ | --disable-libssp | ||
+ | --disable-libvtv | ||
+ | --enable-languages=c, | ||
+ | </ | ||
+ | |||
+ | === configure 옵션 설명 === | ||
+ | |||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | |||
+ | 패키지를 컴파일합니다. | ||
+ | |||
+ | <code bash> | ||
+ | make | ||
+ | </ | ||
+ | |||
+ | 패키지를 설치합니다. | ||
+ | |||
+ | <code bash> | ||
+ | make DESTDIR=$LFS install | ||
+ | </ | ||
+ | |||
+ | 마지막으로 유용한 심볼릭 링크를 생성합니다. 많은 프로그램과 스크립트는 **gcc** 대신 **cc**를 실행하는데, | ||
+ | |||
+ | <code bash> | ||
+ | ln -sv gcc $LFS/ | ||
+ | </ | ||
+ | |||
+ | ------ | ||
+ | |||
+ | 이 패키지에 대한 자세한 내용은 [[.: |