私はおもちゃプログラムでテストした結果、大きなプログラムで実行したいと思っています。その多くはmemcachedのようなオープンソースプログラムです。そのようなプログラムは独自のMakefileと複雑なコンパイル手順を持っています。そのようなプログラムのためのビットコードファイルを生成して、それらに私のパスを働かせたい。ヘルプと提案をいただければ幸いです!多くのソースコードファイルと巨大なMakefile(例えばmemcached)を持つ大規模なプログラムのためのllvmビットコードの生成方法は?
0
A
答えて
1
あなたをすることができますやっている:
0
climフラグに-emit-llvmを追加すると、アセンブリではなくオブジェクトファイルまたはLLファイルの代わりにBCファイルが生成されます。
メイクファイルを正しい方向に開始する必要がありますより少し修正する必要があります。あなたは合格している内容に応じて
+0
返信いただきありがとうございます。だから、私はこれらのプログラムの既存のMakefileを修正し、gccをclcで置き換える必要があると思います。既存のツールはありますか? –
ありがとうJoky!だから私はこれらの3つのオプションの1つを行う必要がありますか?最初の2つのオプションの既存の例はありますか? –
私はそうは思いませんが、オプション2は設定が難しくないかもしれません。パスがある場合は、PassManagerBuilder.cppの適切な場所に追加してclangをビルドします。 – Joky
私がしたことは、Makefileを編集して、gcc/g ++を置き換えるclangと関連するフラグを入れて、パスがコード上で動作するようにすることです。私のパスは、関数呼び出しを追加することによってプログラムを呼び出し、その関数は別の.cファイルにあります。しかし、私はclangから未定義の参照エラーを取得します。私はここにこの問題を掲載しました: http://stackoverflow.com/questions/41650417/clang-linking-error-undefined-reference-to-function-calls-added-by-llvm-pass どうぞご覧ください。どうもありがとうございます! –