나는 clang/LLVM을 기반으로 크로스 컴파일 툴 체인을 만들고 있습니다. 현재 다양한 Linux 플랫폼 (ARM, Mips, PowerPC, x86) 및 Windows x86에서 실행됩니다. 나는 현재의 LLVM 소스 트리를 가지고 최신 버전의 binutils, GDB 등을 공개하려고한다. (http://ellcc.org/blog/?page_id=467 참조). 프로젝트에 대한 몇 가지 주요 디자인 목표가 있었지만 두 가지는 최우선 과제였습니다. 필자는 전체 툴 체인이 모든 리눅스 타겟에 대해 자체적으로 구축 될 수 있기를 바랬으며, clang의 정신으로 가능한 한 적은 바이너리 만 지원하기를 원했습니다. 이를 위해 binutils를 빌드하여 대부분의 실행 파일이 모든 대상을 지원할 수있는 옵션을 제공합니다. 각 프로세서는 자신의 (LLVM이 같은 이상의 내부 어셈블러 지원이 사용할 수에 대한 필요성을 제거한다), 그러나 나는 등 한 LD, objdump를, GDB을 구축으로, 즉 처리 할 수있는 얻는 모든 다른를 목표.
깨끗한 소스 설치에서 나는 먼저 gcc로 clang/LLVM과 binutils/GDB를 만든 다음 모든 대상에 대해 모든 라이브러리 (C/C++, compiler-rt 등)를 빌드합니다. 두 번째 선택적 빌드는 새로 빌드 된 도구를 사용하여 컴파일합니다. 그 이후의 빌드는 자체 호스팅입니다.
다양한 호스트의 모든 도구를 x86 Linux 상자에 구축했지만 이론적으로 각 도구 체인은 다른 Linux 호스트 또는 Windows에서 자체를 다시 만들 수 있어야합니다. 당신이 미리 만들어진 바이너리에 관심이 있다면
, 그들은 (당신이 정말로 몸을 명시하지 않는하지만) 나는 이것이 좋은 질문이라고 생각 http://ellcc.org/blog/?page_id=20295
에서 사용할 수 있습니다. 아마도 이전 Stack Overflow에서 환영 받았을 것입니다. 스택 오버플로의 현재 버전에서는 너무 광범위하게 닫힙니다. – jww
그래, 일종의. 그러나 의견이 많지 않다는 것을 알게 될 것입니다. 아마도 스택 오버플로에 관한 잘못된 질문이있는 주요한 성가심 일 것입니다. 정말 LLVM/clang에 대해 구체적으로 알고 싶습니다. 나는 당신이 그것을 꺼내기 위해 나의 주제를 편집 한 것을 알아 차렸다. –
편집에 대해서는 [제목에 "태그"가 포함되어야합니까?] (http://meta.stackexchange.com/q/19190)를 참조하십시오. * Tag : * 및 * Tag - *와 같은 제목은 정리해야합니다. – jww