2016-05-06 4 views
3

私は、llvmを使ってC++をcコードに変換できることを知っています。 clangが同じことをすることができるかどうか疑問に思っていた(clangllvmから派生したものと見る)。Clangを使ってC++をCコードに変換する

clangを使用して、C++コードをCコードに変換できますか?あなたは、私はここにこれをしたい理由を知りたい場合は

は私のシナリオです:

PICマイクロコントローラのメーカーである、C++コンパイラを作成しませんが、自社製品のほとんどのCコンパイラを作るん。私はC++で記述し、ビルドプロセスの一環として、C++コードを一時的なCファイルに変換してから、PICコンパイラに渡します.ViolaはPICマイクロのためのC++コードを書いています。

+0

"私はllvmを使ってC++をcコードに変換することができます。" - どのように? LLVMはコンパイラインフラストラクチャライブラリです。それはCやC++を知らない。おそらくLLVMとclangが実際に何を書いているのかをよく読んでください。 – Olaf

+1

@Olaf http://llvm.org/releases/3.1/docs/FAQ.html#translatecxx – DarthRubik

+0

うーん、興味深い。しかし、私はそのCコードとは言いません。それはCの構文(テキストを読んで)とアセンブラーのようなものです。あなたは確かにあなたのプロジェクトでそのようなコードを望んでいない(そして、すべての上級者は、とにかくそのようなコードを拒否する)。 – Olaf

答えて

4

ClangはC++を読み取り、LLVM IRを出力できます。あなたは、LLVMがIRを読んでC(自分のリンク:http://llvm.org/releases/3.1/docs/FAQ.html#translatecxxから)を発行できることに気づいているようです。だからClangはCを直接出すことはできませんが、LLVM IRを出してCに変換して変換することができます.2つのステップがあり、Clangもその1つです。

+4

約4年前、Cのバックエンド機能は[削除済み](http://llvm.org/viewvc/llvm-project?view=revision&revision=153307)でした。あなたはそれを使用するためにかなり時間を取って戻る必要があります。適切な注意を払ってください。 –

+0

@BenjaminBarenblat:うわーは吸う。さて、私はこれを見つけましたが(テストしていません):https://github.com/draperlaboratory/llvm-cbe –

関連する問題