web-dev-qa-db-ja.com

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

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

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

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

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

9
Maniero

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


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

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

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

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

9
Klaim

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

一般的に言って、clang compilesコードはgccよりも高速ですが、gccはより最適化されたコードを生成します。 (これが当てはまらないEdgeのケースがありますが、一般的にはそれが現在のステータスです。)

8
mipadi

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

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

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

編集:明確にするために、clangruns高速(場合によっては、はるかに高速)です。私は空想的な最適化について気にしません。

3
elias