GCC 대신 인텔의 컴파일러를 사용하여 완전한 Linux 시스템을 컴파일할 수 있습니까?

GCC 대신 인텔의 컴파일러를 사용하여 완전한 Linux 시스템을 컴파일할 수 있습니까?

혹시 호환성 문제가 있는 게 아닐까요?

내 생각에는 Intel 기반 시스템의 경우 Intel 컴파일러가 GCC보다 더 나은 작업을 수행할 수 있다는 것입니다. 어쩌면 이미 이것을 시도한 배포판이 있을까요?

Gentoo를 사용하면 매우 간단할 수 있다고 생각합니다.

답변1

icc를 사용하여 모든 것을 컴파일할 수는 없습니다. 많은 프로그램이 C 언어에 대한 GCC 확장을 사용합니다. 그러나 Intel은 이러한 확장의 대부분을 지원하기 위해 많은 노력을 기울였습니다. 예를 들어 최신 버전의 icc는 Linux 커널을 컴파일할 수 있습니다.

특이한 방식으로 소프트웨어를 다시 컴파일하고 싶다면 Gentoo가 실제로 최선의 선택입니다. 이것젠투 위키의 icc 페이지주요 장벽이 설명됩니다.

먼저 기본 젠투 설치를 수행한 다음 emerge icc시스템에 icc로 컴파일된 바이너리가 있는 한 icc를 제거하지 마십시오. icc가 루트 파티션에 설치되어 /opt있지 않고 시작 시 사용된 프로그램이 icc로 컴파일된 경우 icc 라이브러리를 루트 파티션에 복사해야 합니다.

/etc/portage/bashrc선호하는 컴파일 옵션을 설정 하고 선언하세요.젠투 위키다양한 컴파일러를 사용하여 다양한 패키지 빌드를 지원하는 보다 철저한 스크립트(ICC가 일부 패키지를 손상시키기 때문에 필요합니다).

export OCC="icc" CFLAGS="-O2 -gcc"
export OCXX="icpc" CXXFLAGS="$CFLAGS"
export CC_FOR_BUILD="${OCC}"

답변2

분명 재미있는 경험이 될 것입니다. 그러나 대체 컴파일러를 사용하여 전체 Linux 배포판을 다시 컴파일하는 것은 그렇게 간단하지 않습니다. 많은 중요한 소프트웨어 패키지는 GCC 및 기타 GNU 툴체인 유틸리티에 의존합니다.

혼합을 생성하기 위해 GCC가 필요하지 않은 패키지의 경우 대체 컴파일러를 사용할 수 있습니다. GCC에 의존하는 패키지를 컴파일러로 빌드할 수 있는 다른 패키지로 바꾸는 것이 가능할 수도 있지만 대부분의 경우 대안이 많지 않습니다. 이러한 대안이 사용 목적에 적합한지 여부를 결정해야 합니다.

하지만 진짜 질문은 이것이다: 그럴만한 가치가 있는가? 임베디드 시스템을 구축하려는 경우 대체 컴파일러가 더 작은 바이너리를 생성할 수 있습니다. 컴퓨팅 클러스터를 구축하는 경우 코드 실행이 더 빨라질 수 있습니다. 데스크탑을 구축하고 있다면 훌륭한 학습 경험을 얻을 수 있습니다.

나는 궁극적으로 (데스크톱을 구축한다고 가정하면) 많은 소스 배포 사용자가 올바른 결정을 내리게 될 것이라고 생각합니다. 최적화, 구축 및 재구축에 소요되는 시간은 더 빠른 코드 실행으로 절약되는 시간보다 훨씬 큽니다. 그렇다고 해서 하지 말아야 한다는 뜻은 아닙니다. 재미있을 수 있습니다. 그렇다면 이 사이트는 답변을 찾고 노력을 문서화할 수 있는 좋은 장소가 될 것입니다.

관련 정보