2016-07-26 1 views
4

私はhttps://github.com/lsegal/my_toy_compilerに従っていますが、LLVM 3.8.0用に更新されていますが、LLVM 3.8.4をbrewから--with-clang --with-lld --with-jit --with-pythonでコンパイルすることはできません。具体的には、私は次のエラーuse of undeclared identifier 'getGlobalContext'を取得します。LLVMとのバインド3.8.4 no getGlobalContext

さらに、記号getGlobalContextは、/usr/local/opt/llvm/include/llvm/IR/LLVMContext.hまたは実際に/usr/local/opt/llvm/includeディレクトリには表示されません。

私は、この機能のいずれかが最近非難されているか(証拠を見つけることができていない)、または正しくビルドしていないことを期待しています。

ヒントをいただければ幸いです。

NOTE私はTrouble linking against LLVM with project including Flex and Bisonを見てきましたし、それは私の特定の問題

答えて

1

私はSVNから構築された4.0.0バージョンと同じ問題を抱えているが解決しませんでした。私はと266379をコミット次のことがわかりました。この変化の例をコミットするすべてのgetGlobalConfigの出現()

https://reviews.llvm.org/rL266379

の除去のいずれかの内部コンテキスト変数の定義:
ました:
static IRBuilder<> Builder(getGlobalContext());

になる:
static LLVMContext TheContext;
static IRBuilder<> Builder(TheContext);

+0

感謝。私はソース(バージョン3.8.something)から最新のzipを作成するだけで私の問題を解決することができたことを述べるべきですが、これも良い情報です。 – Mobius

3

また、llvm 4.0でも同じ問題が発生しました。 私の解決策は以下の通りです。古い

LLVMContext *llvmcx; 
    llvmcx = &getGlobalContext(); 

新しい:

LLVMContext *llvmcx; 
static LLVMContext MyGlobalContext; 
llvmcx = &MyGlobalContext; 
関連する問題