LLVMには、LLVMContext
ストレージの単位でllvm::Module
あるがあり、新しいシンボル(関数とタイプ)が構築される場所にあります。
私の質問は; コンパイルユニットに使用する正しいllvm抽象化は何ですか?Module
?_ または、これは実際にはより広い範囲を対象としています。つまり、共有ライブラリターゲット
コンパイルユニットは、オールオアナッシングの結果を満たさなければならないように思えます。エラーなしですべてのコンテンツをコンパイルするか、エラーがあり、CU内のシンボルを使用する前に、修正して再構築する必要があります。私の頭の中では、これはコンパイルユニットが表すべきものの定義です
モジュールがCUの正しい抽象化である場合、他の(正しくコンパイルされた)Module
オブジェクトのシンボルを、ビルドしようとしている新しいモジュールに提示して、それらを見つけることができるようにするにはどうすればよいですか?宣言を追加する必要がありますか、それとも他の迅速な方法がありますか?
の関連する行へのポイントclang
は非常に役立ちます