首页 > 解决方案 > LLVM 6.0.0 HowToUseJit 示例程序段错误

问题描述

我在 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);

标签: llvmjit

解决方案


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

添加以下内容:

#include "llvm/ExecutionEngine/MCJIT.h"

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

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

LLVMInitializeNativeAsmPrinter();

此功能是为目标机器生成装配所必需的。


推荐阅读