2016-07-26 70 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目錄中的任何位置。

我期望這個函數最近已被棄用(爲此我一直沒有找到任何證據),或者我沒有正確地構建它。

任何提示將不勝感激。

注意我已經看到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;