【发布时间】:2020-02-07 02:19:07
【问题描述】:
对于我的编程语言来说,程序的入口就像C/C++ main函数:
int main(int argc, char **argv) {
return 0
}
假设:
-
main的 IR 代码使用llvm::IRBuilder生成到llvm::Function中 - 我创建了
llvm::LLVMContext和llvm::Module
问题:
如果我想将此代码编译成二进制prog,如何使用llvm生成将命令行参数传递给argc和argv的部分,然后调用main,这是用户在使用时提供的正在运行prog?
【问题讨论】:
-
如果该函数 actually 被称为 main() 并且 actually 具有这些参数,那么它应该可以正常工作。如果不是,那么您需要生成一个实际上称为 main() 的桥接函数,并以您希望调用的方式调用您想要调用的函数。
标签: c++ compiler-construction llvm llvm-c++-api