问题描述
|
这个想法是在运行时生成C / C ++代码,将其编译为共享对象,然后在当前进程中加载该共享对象。
我知道可以通过在主机平台(GCC或MSVC)上使用现有的编译器安装来完成,但在实际情况下,客户端不必进行此类安装。因此,其想法是与此类编译器和链接器进行静态链接。
例如,在Java中,您可以直接从Java代码编译.java类。它可用于从数据库架构自动生成商务对象。
解决方法
您可以使用llvm的c语言前端(clang)进行此操作。建立在clang之上的静态分析器可能为您提供一些有关如何进行的想法。
,有tinyC:http://bellard.org/tcc/。我不知道C ++有什么相似之处。
,嵌入Google的“ c解释器”,您将一举成名
http://www.softintegration.com/(嵌入式C / C ++解释器)
在这里查看/文章
http://code.google.com/p/picoc/(仅C?)
青年汽车
,据我所知,这对于c或c ++而言是无法完成的。您必须开始一个新进程(在其中执行编译器),并且需要安装编译器。
,您可能想看看基于llvm的破解语言,它处于早期阶段,但似乎与您尝试实现的目标相去甚远。