차이

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

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
linuxfromscratch:12.1:098-gcc-13.2.0 [2024/06/11 14:17] – [8.28.1. GCC 설치] baecylinuxfromscratch:12.1:098-gcc-13.2.0 [2024/06/15 11:43] (현재) – [8.28.1. GCC 설치] baecy
줄 126: 줄 126:
 </code> </code>
  
-호환성 심볼릭 링크를 추가하여 링크 시간 최적화(LTO)로 프로그램을 빌드할 수 있도록 합니다.+호환성 심볼릭 링크를 추가하여 링크 시 최적화(LTO)로 프로그램을 빌드할 수 있도록 합니다.
  
 <code bash> <code bash>
줄 141: 줄 141:
 cc dummy.c -v -Wl,--verbose &> dummy.log cc dummy.c -v -Wl,--verbose &> dummy.log
 readelf -l a.out | grep ': /lib' readelf -l a.out | grep ': /lib'
-[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2] +[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</code>
-</code>+
  
 이제 올바른 시작 파일을 사용하도록 설정되어 있는지 확인합니다. 이제 올바른 시작 파일을 사용하도록 설정되어 있는지 확인합니다.
줄 151: 줄 150:
 /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.0/../../../../lib/Scrt1.o succeeded /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.0/../../../../lib/Scrt1.o succeeded
 /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.0/../../../../lib/crti.o succeeded /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.0/../../../../lib/crti.o succeeded
-/usr/lib/gcc/x86_64-pc-linux-gnu/13.2.0/../.../../../lib/crtn.o succeeded +/usr/lib/gcc/x86_64-pc-linux-gnu/13.2.0/../.../../../lib/crtn.o succeeded</code>
-</code>+
  
 머신 아키텍처에 따라 위의 내용은 약간 다를 수 있습니다. 차이점은 ''/usr/lib/gcc'' 뒤의 디렉토리 이름입니다. 여기서 중요한 것은 **''gcc''**가 ''/usr/lib'' 디렉터리에서 세 개의 ''crt*.o'' 파일을 모두 찾았다는 것입니다. 머신 아키텍처에 따라 위의 내용은 약간 다를 수 있습니다. 차이점은 ''/usr/lib/gcc'' 뒤의 디렉토리 이름입니다. 여기서 중요한 것은 **''gcc''**가 ''/usr/lib'' 디렉터리에서 세 개의 ''crt*.o'' 파일을 모두 찾았다는 것입니다.
줄 166: 줄 164:
  /usr/local/include  /usr/local/include
  /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.0/include-fixed  /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.0/include-fixed
- /usr/include + /usr/include</code>
-</code>+
  
 다시 말하지만, 시스템 아키텍처에 따라 대상 삼중 항의 이름을 딴 디렉터리는 위와 다를 수 있습니다. 다시 말하지만, 시스템 아키텍처에 따라 대상 삼중 항의 이름을 딴 디렉터리는 위와 다를 수 있습니다.
줄 183: 줄 180:
 SEARCH_DIR("/usr/local/lib") SEARCH_DIR("/usr/local/lib")
 SEARCH_DIR("/lib") SEARCH_DIR("/lib")
-SEARCH_DIR("/usr/lib"); +SEARCH_DIR("/usr/lib");</code>
-</code>+
  
 32비트 시스템에서는 몇 가지 다른 디렉터리를 사용할 수 있습니다. 예를 들어 다음은 i686 컴퓨터의 출력입니다. 32비트 시스템에서는 몇 가지 다른 디렉터리를 사용할 수 있습니다. 예를 들어 다음은 i686 컴퓨터의 출력입니다.
줄 197: 줄 193:
 SEARCH_DIR("/usr/local/lib") SEARCH_DIR("/usr/local/lib")
 SEARCH_DIR("/lib") SEARCH_DIR("/lib")
-SEARCH_DIR("/usr/lib"); +SEARCH_DIR("/usr/lib");</code>
-</code>+
  
 다음으로 올바른 libc를 사용하고 있는지 확인합니다. 다음으로 올바른 libc를 사용하고 있는지 확인합니다.
줄 206: 줄 201:
 <code bash host=lfs user=root cmdout=2> <code bash host=lfs user=root cmdout=2>
 grep "/lib.*/libc.so.6" dummy.log grep "/lib.*/libc.so.6" dummy.log
-attempt to open /usr/lib/libc.so.6 succeeded +attempt to open /usr/lib/libc.so.6 succeeded</code>
-</code>+
  
 GCC가 올바른 동적 링커를 사용하고 있는지 확인합니다. GCC가 올바른 동적 링커를 사용하고 있는지 확인합니다.
줄 213: 줄 207:
 <code bash host=lfs user=root cmdout=2> <code bash host=lfs user=root cmdout=2>
 grep found dummy.log grep found dummy.log
-found ld-linux-x86-64.so.2 at /usr/lib/ld-linux-x86-64.so.2 +found ld-linux-x86-64.so.2 at /usr/lib/ld-linux-x86-64.so.2</code>
-</code>+
  
 위와 같이 출력이 나타나지 않거나 아무것도 출력되지 않는다면 심각한 문제가 있는 것입니다. 각 단계를 조사하고 역추적하여 문제의 원인을 찾아서 해결하세요. 계속 진행하기 전에 모든 문제를 해결해야 합니다. 위와 같이 출력이 나타나지 않거나 아무것도 출력되지 않는다면 심각한 문제가 있는 것입니다. 각 단계를 조사하고 역추적하여 문제의 원인을 찾아서 해결하세요. 계속 진행하기 전에 모든 문제를 해결해야 합니다.
  • linuxfromscratch/12.1/098-gcc-13.2.0.1718115433.txt.gz
  • 마지막으로 수정됨: 2024/06/11 14:17
  • 저자 baecy