![](/img/trans.png)
[英]How does one compile C code, containing C++ keywords, using a C++(g++) compiler?
[英]Compile a C++ code snippet using G++ dynamically
在基于C ++的应用程序上工作时,它需要用户输入并生成C ++函数,然后对其进行编译以创建.so文件,并将该函数链接到主应用程序。 当前必须调用一个外部命令“ g ++”来做到这一点。 想知道是否可以调用某种函数,例如“编译”,它以一个代码段作为输入并产生一个.so。 更准确地说,我需要一个具有以下语法的函数:
sizeOfObjBuf = compile(codeBuf, objBuf);
第一个参数是一个包含代码段的以空终止的字符串,第二个参数是保存已编译代码的输出缓冲区,它返回已编译代码大小的大小。
整个想法是摆脱对外部程序(g ++)的依赖,以便该应用程序可以在任何Linux系统上运行(即使未安装g ++的情况)。
谢谢。
恐怕答案是“否”。
您可以通过在单独的进程中执行G ++(或其他编译器)并等待其完成来实现该功能,但这仍然需要用户安装编译器。
没有C ++编译器,您将无法编译C ++代码。
我不会做研究来弄清楚它是如何完成的,但是我相信LLVM C ++编译器可以这种方式使用。 从理论上讲,LLVM的所有部分都旨在作为一个库运行。
好的,稍作研究,我发现了这一点: http : //clang.llvm.org/docs/LibTooling.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.