[英]How to invoke LLVM code from a c++ program and pass data to it
我有一个c ++程序,可以在运行时生成LLVM IR。 现在,我想从我的c ++程序将此IR编译为二进制文件并调用该二进制文件。 同样在调用之前,我想将数据从我的c ++程序传递到生成的二进制文件。 我是LLVM的新手,我找不到与此相关的任何文档。 有人可以指向有关此问题的文档,也可以让我知道如何完成。
即使您没有说明要如何调用发出的代码,也可以想到以下一般的阻止和解决步骤,因此我认为这就像您正在调用另一个可执行文件一样:
在可执行文件中
system
,clang之类的函数调用,该函数将从LLVM IR中生成新的可执行程序。 system
类的函数,调用新生成的可执行文件并将数据作为命令行参数传递。 生成LLVM IR
main
函数定义,该函数定义使用argc and argv
因为这将消耗正在发送的已传递数据。 main
身体,你将需要妥善处理在命令行中输入并调用你原本想行使的代码。 但是:这有一些变化。 例如,如果要生成动态库,则可以省略main
函数的生成,而是对刚创建的动态库进行运行时加载并解析函数入口点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.