C/C++中的对象文件加载和链接(JIT)

xpcnnkqh  于 5个月前  发布在  C/C++
关注(0)|答案(1)|浏览(68)

我正在寻找一个C或C++库,它可以在运行时动态加载和链接obj文件(无论是ELF还是obj)。我花了一些时间寻找这样的库,但我的结果并不成功。
我所尝试的:

LLVM:目前最好的解决方案!我使用Clang生成LLVM字节码格式的.obj文件,并使用它的JIT函数动态加载和执行函数。但是,LLVM很大,我家里的PC没有能力编译完整的LLVM,只是为了JIT。我还遇到了一些重定位溢出或未实现重定位类型的问题。
libjit:我读到,它可以加载.elf文件并链接它们。但遗憾的是,我不能为windows编译它,所以我不能尝试。
Nanojit和NativeJit:似乎不支持对象文件的JIT。

那么.

3lxsmp7m

3lxsmp7m1#

我假设可以作为第一种方法的类比是,.bc(LLVM位代码)类似于.o(或.obj)文件,因为它只是将C++代码转换为中间语言,并且它可以包含对其中未定义的函数的引用,以便在库中搜索。
JIT代码类似于DLL,因为它将动态链接到运行它的可执行文件。
您不需要编译LLVM --您可以从LLVM Download Page下载LLVM的二进制文件和各种实用程序(如clang

相关问题