我正在尝试关注https://github.com/lsegal/my_toy_compiler,但即使它已针对LLVM 3.8.0进行了更新,我也无法使用来自brew --with-clang --with-lld --with-jit --with-python
的LLVM 3.8.4进行编译。具体来说,我收到以下错误use of undeclared identifier '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并没有解决我的特定问题
答案 0 :(得分:6)
我也遇到过与llvm 4.0相同的问题。 我的解决方案如下。
旧:
LLVMContext *llvmcx;
llvmcx = &getGlobalContext();
新:
LLVMContext *llvmcx;
static LLVMContext MyGlobalContext;
llvmcx = &MyGlobalContext;
答案 1 :(得分:4)
我对从svn构建的4.0.0版本有同样的问题。我发现以下提交266379删除所有出现的getGlobalConfig()
https://reviews.llvm.org/rL266379
此提交更改了定义内部上下文变量的示例:
是:
static IRBuilder<> Builder(getGlobalContext());
成为:
static LLVMContext TheContext;
static IRBuilder<> Builder(TheContext);