我有一个可以在运行时生成LLVM IR的c ++程序。现在我想从我的c ++程序将这个IR编译成二进制文件并调用二进制文件。在调用之前,我想将数据从我的c ++程序传递给生成的二进制文件。我是LLVM的新手,我找不到任何关于此的文档。有人可以指出有关这方面的文档或让我知道如何做到这一点。
答案 0 :(得分:1)
即使你没有说明你想如何调用发出的代码,我想到了一般的阻止和处理步骤,所以我假设它就像你在调用另一个可执行文件一样:
在您的可执行文件中
node server.js -w /home/workspace -l 0.0.0.0 -p 8081 -a username:password
的函数调用clang,它将从LLVM IR生成新的可执行程序。system
的函数调用新生成的可执行文件并将数据作为命令行参数传递。LLVM IR生成
system
函数定义,该定义需要main
,因为这将消耗您发送的传递数据。 argc and argv
正文中,您需要适当地处理命令行输入并调用您最初想要运用的代码。但是:这有变化。例如,如果要生成动态库,可以省略main
函数的生成,而是对刚刚创建的动态库进行运行时加载,并解析函数入口点。