LLVM中的万花筒示例似乎已经中断,至少在MSVC++ x64中已经中断了相当长的一段时间,甚至几个月。由于相同的原因,它在MCJIT及其新的Orc JIT框架中不起作用。
// Get the address of the JIT'd function in memory.
auto ExprSymbol = J.findUnmangledSymbol("__anon_expr");
该表达式返回空值,并导致空指针错误。我现在无法猜测如何解决,因为调用树在那里太深了,可能需要大约几天的调试时间。但从理论上讲,此代码具有教育意义,不会给新手带来麻烦。所以也许我做错了。
最佳答案
对我来说,最简单的解决方法是修补findMangledSymbol
函数,将CompileLayer.findSymbolIn
设置为bExportedSymbolsOnly
调用false
。它不能解决问题,但可以避免症状。
关于c++ - 如何使llvm jit在MSVC++中工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33600066/