2013-10-18 3 views
0

나는 (X86_64) GCC 호스트 컴파일러가 4.6.3 & 대상 컴파일러 (MIPS) GCC 4.5.3, GCC에서 호스트 컴파일러의 프론트 엔드 및 타겟 컴파일러의 백엔드를 사용할 방법이 있습니까?

대상 컴파일러의 백과 함께 호스트 컴파일러의 프론트 엔드를 사용하는 방법이 있나요 끝?

내 질문에 약간의 차이가있을 수 있지만, 궁금한 점은 대상 컴파일러가 여전히 이러한 기능을 지원하는 데 걸리는 임베디드 플랫폼을 코딩하는 동안 최신 C++ 11 표준을 사용하는 것입니다.

또한이 요구 사항에 대한 LLVM + GCC 조합을 사용할 수 있습니다 (I는 모든 C++ 11 기능 컴파일러 프론트 엔드 & 아무것도 CPU 특정 백엔드에 관련되지 구현되어 있으리라 믿고있어) ?

(어떤 제안/팁 감사합니다!)

편집 : (! 나에게 알려진 추가 가능한 옵션) 칩 vendtor에서 최신 툴체인을 얻기

  1. (시간이 걸리는)
  2. GCC 소스에서 내 도구 체인 만들기 (타사 라이브러리 호환성 문제)
+0

MIPS의 경우 GCC 4.6.3을 얻으시겠습니까? –

+0

@ R.MartinhoFernandes, 그것은 칩 공급 업체로부터 얻는 것이 다소 어렵고 시간이 많이 걸립니다. –

+1

틀린 가정, C++ 11 기능이 표준 라이브러리에 포함되어 있습니다 (귀하의 경우 libstdC++ 4.5.3에서는 문제가 발생합니다 ...). 참고로, GCC 4.6.3은 "최신 C++ 11 표준"을 제공하는 것과는 거리가 멀다. GCC 4.8.1은 핵심 언어에 관한 한 완벽한 기능이지만 표준 라이브러리 측면에서는 완벽하지 않다. – syam

답변

3

아니요 두 가지 이유가 있습니다.

  • 가설이 적용되지 않습니다. C++ 11 기능은 프론트 엔드, 백엔드 및 표준 C++ 라이브러리에 걸쳐 있습니다. 일부 기능은 다른 부분이 없어도 프런트 엔드에서만 가능하지만 대부분은 그렇지 않습니다.

  • GCC 정책은 프런트 엔드와 백 엔드를 함께 연결하는 것입니다. 기술적 인 이유가 없으며 순수한 정치적 이유가 있습니다. 그러나 프런트 엔드 교환을 방지합니다.

+0

@ "Jan Hudec", FE & BE는 서로 다른 버전의 GCC에서 호환되지 않습니다. –

+1

"프론트 엔드"와 "백엔드"없음 GCC는 모듈화가 아닌 하나의 모 놀리 식 조각입니다 –

+1

할 수있는 일이 인상적 일 수 있습니다 .C++ 11 가변 템플릿을 사용할 수있었습니다 (컴파일 타임에 컴파일되었습니다). 튜링 기계 시뮬레이터) 내 GCC 백엔드와 C + + 지원에 대한 구체적인 일을하지 않고 (내 목표는 C에서 지원, 내가 성공했다.) decltype, variadic 템플릿, 자동, initializer 목록처럼 내 마음을 팝업 모든 것들이 ' 백엔드 지원이 필요한 것처럼 보입니다. –