llvm - 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);
解决方案
我认为 HowToUseJit 示例不完整。您需要进行以下更改才能使其正常工作:
添加以下内容:
#include "llvm/ExecutionEngine/MCJIT.h"
这将调用 JITting 在 LLVM 中工作所需的一些静态初始化函数。
在运行 JITted 函数之前,您还需要在 main 中添加对此函数的调用:
LLVMInitializeNativeAsmPrinter();
此功能是为目标机器生成装配所必需的。
推荐阅读
- regex - 通过正则表达式查找文本并在其后添加新文本
- okhttp - MockWebServer:java.lang.NoSuchMethodError
- r - R中的file.copy - 只读权限被拒绝
- java - 在 Java 中,我可以从对象列表中提取单个字段并使用 lambda 将其分配给变量吗?
- python - Pandas:时间转换器单独工作,但在读取 csv 文件时不工作
- angular - 添加 tsconfig-es5.app.json 后,Angular 不支持 IE 中的引导程序
- spring - 如何在不使用 @Transactional 的集成测试中解决惰性关联?
- c# - 是否可以在 ASP.NET Core MVC 应用程序中运行 Blazor 客户端页面?
- java - 如何检查项目中有多少测试?
- excel - 用于将连接公式设置为整列的宏?