LLVM 6.0.0 HowToUseJit示例程序seg错误

时间:2018-07-22 06:40:42

标签: llvm jit

我在Windows上将x64的LLVM 6.0.0编译为DLL,并尝试运行HowToUseJit示例程序,它出现段错误。您如何解决?

示例的源代码: https://github.com/llvm-mirror/llvm/blob/release_60/examples/HowToUseJIT/HowToUseJIT.cpp

此行在示例中导致了段错误:

GenericValue gv = EE->runFunction(FooF, noargs);

1 个答案:

答案 0 :(得分:0)

我认为HowToUseJit示例不完整。您需要进行以下更改才能使其正常工作:

添加以下内容:

#include "llvm/ExecutionEngine/MCJIT.h"

这将调用一些静态初始化函数,这是JITting在LLVM中工作所必需的。

在运行JITted函数之前,还需要在main内部添加对此函数的调用:

LLVMInitializeNativeAsmPrinter();

此功能对于为目标机器进行组装是必需的。