在使用llvm-13构建(OrcV2)Jit编译器时,如何解析当前会话中的符号?
本文介绍了在使用llvm-13构建(OrcV2)Jit编译器时,如何解析当前会话中的符号?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
编辑
我基本上是在尝试this,但使用llvm的orc
Jit API(llvm-13)
我有一个库,其中包含一些使用llvm(13)的代码。我想让JIT使用该库中的一些函数,而不必用LLVMIR编写它们。
以下是一些代码:
到目前为止一切顺利。我还没有弄清楚的是如何以可缓存的方式使add2
函数可用。我已经成功地按照here的说明在当前会话中启用了地址的硬编码,如下所示:
是不可能的,因为没有/path/to/lib
。处理此类情况的正常方法是什么?
推荐答案
您需要的是向链接器添加-rdynamic
或-Wl, -export-dynamic
标志。
-E--导出-动态
在创建动态链接的可执行文件时,将所有符号添加到动态符号表。动态符号表是在运行时从动态对象可见的符号集。如果不使用此选项,动态符号表通常只包含链接中提到的某些动态对象引用的符号。如果使用dlopen加载需要引用程序定义的符号的动态对象,而不是某个其他动态对象,则在链接程序本身时可能需要使用此选项。
这篇关于在使用llvm-13构建(OrcV2)Jit编译器时,如何解析当前会话中的符号?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!