Clang / LLVM이 프라임 타임 준비가 되셨습니까? [닫은]


9

gcc 대신 Clang을 사용할 수 있습니까? 그것에 대한 당신의 경험은 무엇입니까? 아직 어떤 단점이 있습니까?

컴파일 성능은 gcc보다 훨씬 뛰어나지 만 실행할 때 생성 된 코드 성능은 어떻습니까?

Linux 또는 Windows에서 실행하기에 좋은 도구 인 프론트 엔드 (IDE)가 있습니까?

편집 : 나는 C 컴파일러를 의미합니다. C ++ 아직 좋지 않습니다.

답변:


9

업데이트 : 이제 (2013) Clang은 프라임 타임 준비가되었으며 Google과 같은 일부 회사에서 사용합니다. 그러나 Windows에서 완전히 사용할 수는 없습니다.이 플랫폼에서의 작업은 "진행중인 작업"입니다. LLVM / Clang은 현재 MacOSX / XCode의 기본 컴파일러이지만 LLVM과 정확히 동일한 릴리스는 아니므로 사소한 차이점 (주로 버전 번호의 차이)에주의하십시오.


그럼 다음 그 소리 dev에 메일 링리스트 , 최근 트렁크 버전이 성공적으로 구축되었습니다 :

  • 리눅스 커널 (최신 개정판)
  • Qt (특별한 빌드 프로세스도 있음)
  • 크롬 (최신 개정)

따라서, 다가오는 버전 (2.9)은 좋은 "프라임 타임 준비"컴파일러라고 말할 수 있습니다.

그러나 프로젝트에 계획과 예산이 있다면 아직 많이 테스트되지 않은 컴파일러를 사용하는 것은 좋지 않습니다. Clang 개발자 커뮤니티에 실험하고 피드백을 제공 할 수 있다면, 모두에게 승리입니다. 그렇지 않은 경우, gcc (최신 버전에서)와 같이 성숙하고 많이 사용되는 컴파일러를 사용하여 프로젝트에서 작업하는 동안 신뢰할 수있는 "안정적인 기반"을 확보해야합니다.


보완하기 위해 전문적인 프로젝트는 아니지만 거의 20 %의 작업 시간 프로젝트입니다.
Maniero

나는 비전문 크로스 플랫폼 프로젝트에서 clang을 시도했을 것입니다. 사실 그것은 내가 지금 시도하는 것입니다.
Klaim

감사. 저의 관심사는 프로젝트의 미래에 관한 것입니다. 실험으로 시작하지만 그보다 더 빨리하고 싶습니다.
Maniero

장기 프로젝트 인 경우, 안정적이고, 정확하며, 최적화되고 완전한 C ++ 0x 기능이 있으면 (C ++를 사용하는 경우) CLang에서 이점을 얻을 수 있습니다. 목표는 더 빠른 컴파일러가 될 것이기 때문에 이미 존재합니다. 그리고 그것은 중요합니다.
Klaim

1
Clang은 iOS, Xcode 및 Apple이 제공하는 거의 모든 것을 구축하고 있습니다.
Mike Weller

8

글쎄, 많은 Mac OS X 응용 프로그램이 clang을 사용하여 컴파일되므로 Mac OS X에서 프라임 타임에 대비할 수 있습니다. 그러나 다른 플랫폼에서도 C 지원은 매우 견고하며 팀은 C ++ 지원을 통해 큰 발전을 이루었습니다.

일반적으로 clang 은 gcc보다 코드를 더 빨리 컴파일 하지만 gcc는 더 최적화 된 코드를 생성합니다. (이것이 사실이 아닌 경우가 있지만 일반적으로 현재 상태입니다.)


같은 문제가 있는데 Clang은 아직 MacOS / BSD에 너무 묶여 있습니다.
Maniero

Windows 7에서 CLang을 시도했지만 올바르게 작동했습니다. 우분투에서도 시도했습니다. 귀하의 정보는 최신 정보가 아니라고 생각하지만 지난 몇 개월 동안 많은 플랫폼 간 수정 노력이 이루어 졌기 때문에 논리입니다. 따라서 다음 버전이 나오면 맥 중심이 아닐 수도 있습니다.
Klaim

1
@ 클라 임 : Clang 그 자체 가 아니라 전체 생태계에 대해 말하고 있습니다. Win7 화이트 아웃 문제에 대한 몇 가지를 시도했지만 cli의 컴파일러 만 시도했습니다.
Maniero

Clang이 내 프로젝트의 GCC보다 더 빠른 바이너리를 만들었습니다. 적어도 시도해 볼 가치가 있습니다.
Kendall Hopkins

또한 현재 iOS 용 기본 컴파일러입니다.
mamcx

3

실제로 필요한 경우가 아니라면 특정 컴파일러에 의존해서는 안됩니다. 따라서 Makefile 또는 다른 것에서 컴파일러를 변경할 수 있어야하며 모든 것이 잘 작동합니다.

여기서는 장난감 프로젝트에 주로 clang을 사용합니다. 왜냐하면 더 빠르고 중요하기 때문입니다. 오류 메시지가 너무 명확합니다. 그러나 gdb를 사용해야 할 때 gcc 및 -ggdb로 컴파일합니다. 따라서 clang은 아직 완전한 기능이 아니며 내 유일한 컴파일러가 될 수 없습니다.

(BTW : 저는 x86 젠투에 있고 프로젝트는 C와 C ++에 있습니다)

편집 : 명확히하기 위해 clang 더 빨리 실행됩니다 (일부 경우 훨씬 빠릅니다). 멋진 최적화에 관심이 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.