Clang / LLVMはプライムタイムの準備ができていますか?[閉まっている]


9

Clangはgccの代わりに使用できますか?その上であなたの経験は何ですか?まだどのような欠点がありますか?

コンパイルのパフォーマンスはgccよりも非常に優れていますが、実行時に生成されるコードのパフォーマンスについてはどうでしょうか。

LinuxまたはWindowsで実行するためのフロントエンド(IDE)として優れたツールはありますか?

編集:私はCコンパイラを意味します。C ++はまだあまり良くありません。

回答:


9

更新:現在(2013)Clangはゴールデンタイムの準備ができており、Googleなどの一部の企業で使用されています。ただし、Windowsでは完全に使用できるわけではなく、このプラットフォームでの作業は「進行中の作業」です。LLVM / Clangは現在MacOSX / XCodeのデフォルトコンパイラですが、LLVMとはまったく同じリリースではないため、小さな違い(主にバージョン番号の違い)に注意してください。


よくclang devメーリングリストに従って、最近トランクバージョンが正常にビルドされました。

  • Linuxカーネル(最近のリビジョン)
  • Qt(これも特殊なビルドプロセスです)
  • Chromium(最近の改訂)

したがって、私は次のバージョン(2.9)が「プライムタイムの準備ができている」コンパイラーになると思います。

ただし、プロジェクトに計画と予算がある場合は、まだ十分にテストされていないコンパイラを試すことはお勧めできません。実験してClang開発者コミュニティにフィードバックを提供することが許可されている場合は、それを試してみてください。誰にとってもメリットがあります。そうでない場合は、おそらく、gcc(最近のバージョンでは)のような成熟して頻繁に使用されるコンパイラを使用して、プロジェクトでの作業中に依存する「安定した基盤」を用意する必要があります。


補足として、それはプロのプロジェクトではありません...それでも、それはほぼ20%の労働時間のプロジェクトです。
Maniero 2010年

私はプロではないクロスプラットフォームプロジェクトでclangを試してみました。実際、私は今それを試みています。
Klaim

ありがとう。私の懸念はプロジェクトの将来についてです。私は実験として始めますが、すぐにそれ以上のことをしたいと思っています。
Maniero 2010年

長期間実行されるプロジェクトの場合、安定していて正しく、最適化され、C ++ 0xが完全に機能するようになれば(c ++を使用している場合)、CLangから恩恵を受ける可能性があります。その目標は、より高速なコンパイラになることであり、明らかにそうです。そしてそれは重要です。
2010年

1
ClangはiOS、Xcode、およびAppleが出荷しているほとんどすべてのものも構築しています。
マイクウェラー2013年

8

まあ、多くのMac OS Xアプリはclangを使用してコンパイルされているので、Mac OS Xでのゴールデンタイムの準備は確かです。しかし、他のプラットフォームでも、Cのサポートは非​​常にしっかりしており、チームはC ++のサポートで大きな進歩を遂げました。

一般的に言って、clang はgccよりも速くコードをコンパイルしますが、gccはより最適化されたコードを生成します。(これが当てはまらない場合もありますが、一般的にはそれが現状です。)


同じ問題が発生します。ClangはまだMacOS / BSDに縛られすぎています。
Maniero 2010年

私はWindows 7でCLangを試しましたが、正しく動作しました。Ubuntuでも試してみました。あなたの情報は最新ではないと思いますが、クロスプラットフォームの修正作業がここ数か月間行われているため、これは論理です。そのため、次のバージョンがリリースされたら、それほどMac中心にならないかもしれません。
2010年

1
@Klaim:Clang 自体についてではなく、エコシステム全体についてです。Win7のホワイトアウトの問題についていくつか試してみましたが、cliのコンパイラーだけでした。
Maniero 2010年

私のプロジェクトでは、ClangがGCCよりも高速なバイナリを作成していることがわかりました。少なくとも試してみる価値はあります。
Kendall Hopkins、

また、現在iOSのデフォルトのコンパイラです。
mamcx

3

本当に必要な場合を除いて、特定のコンパイラに依存するべきではありません。そのため、Makefileなどでコンパイラーを変更でき、すべてがうまく機能するはずです。

ここでは主にclangをおもちゃプロジェクトに使用します。高速であり、はるかに重要だからです。エラーメッセージが非常にはっきりしています。しかし、gdbを使用する必要がある場合は、gccと-ggdbを使用してコンパイルします。したがって、clangはまだ完全な機能ではなく、私の唯一のコンパイラではありません。

(ところで:私はx86 gentooを使用しており、プロジェクトはCおよびC ++で作成されています)

編集:明確にするために、clang より速く実行されます(場合によっては、はるかに速く)。私は空想的な最適化について気にしません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.