似乎LLVM中的Kaleidoscope示例已被破坏,至少在MSVC ++ x64中已经有一段时间了,可能是几个月。出于同样的原因,它在MCJIT及其新的Orc JIT框架中不起作用。
// Get the address of the JIT'd function in memory.
auto ExprSymbol = J.findUnmangledSymbol("__anon_expr");
此表达式返回null并导致空指针错误。我现在无法猜测如何制定解决方法,因为调用树太深,可能需要几天的调试时间。但从理论上讲,这段代码具有教育意义,不应该给新手带来麻烦。所以也许我做错了什么。
答案 0 :(得分:1)
对我而言,解决此问题的最简单方法是修补findMangledSymbol
功能,调用CompileLayer.findSymbolIn
并将bExportedSymbolsOnly
设置为false
。它没有解决问题,但避免了这种症状。
答案 1 :(得分:0)