Linux 환경에서 파일 이름에 대해 표시되는 패턴은 다음과 같습니다.
x86_64-pc-linux-gnu
x86_64-linux-gnu-gcc
i386-pc-linux-gnu
이름의 첫 번째 부분처럼 보이 x86_64
거나 i386
하드웨어 아키텍처를 나타냅니다.
그런데 전체 이름이 어떻게 만들어졌는지 궁금하시죠? 이름의 다른 부분은 어떻게 형성됩니까?
답변1
이는 "트리플"이라고도 알려진 "구성 이름"입니다. 내가 아는 가장 좋은 설명은 다음과 같습니다.Ian Lance Taylor의 GNU 구성 및 빌드 시스템 문서.
구성 이름은 최대 4개 부분으로 나뉩니다(원래는 3개 부분이므로 "트리플"이라는 이름이 붙음).
- CPU 또는 아키텍처(
i386
,x86_64
,arm
...) - "제조업체"(
pc
귀하의 경우) - 커널(
linux
) - 일반적으로 C 라이브러리(
gnu
,즉GNU C 라이브러리를 포함한 GNU 운영 체제), 그러나 더 구체적일 수도 있습니다(gnueabihf
ARM에서는즉ARM "임베디드" ABI 및 하드 부동 소수점을 사용하는 GNU 운영 체제)
pc
두 번째 예 와 같이 이들 중 일부는 생략될 수 있습니다 .config.sub
인식하는 "삼중"의 표준 형식을 제공합니다.
$ /usr/share/misc/config.sub x86_64-linux
x86_64-pc-linux-gnu
$ /usr/share/misc/config.sub djgpp
i586-pc-msdosdjgpp
$ /usr/share/misc/config.sub mingw32
i686-pc-mingw32
$ /usr/share/misc/config.sub vaxv
vax-dec-sysv
커널 및/또는 운영 체제가 없는 대상에 대한 몇 가지 변형이 있습니다(예 : arm-none-eabi
, .x86_64-pc-elf
x86_64-pc-none
이러한 구성 이름은 빌드 대상을 설명하는 데 사용되며 크로스 컴파일 시 일반적입니다(그러나 배타적이지는 않음). 이는 configure
많은 옵션에 대한 인수로 사용될 수 있으며 도구를 구축하기 위한 접두사로 사용될 수 있습니다. 따라서 x86_64-linux-gnu-gcc
GCC는 x86_64-linux-gnu
.
그 구조는 다소 신비하며 다음과 같은 결과를 초래할 수 있습니다.긴 토론...