我在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);
答案 0 :(得分:0)
我认为HowToUseJit示例不完整。您需要进行以下更改才能使其正常工作:
添加以下内容:
#include "llvm/ExecutionEngine/MCJIT.h"
这将调用一些静态初始化函数,这是JITting在LLVM中工作所必需的。
在运行JITted函数之前,还需要在main内部添加对此函数的调用:
LLVMInitializeNativeAsmPrinter();
此功能对于为目标机器进行组装是必需的。