这个想法是在运行时生成C / C ++代码,将其编译为共享对象,并在当前进程中加载该共享对象。
我知道可以通过在主机平台(GCC或MSVC)上使用现有的编译器安装来完成,但在实际情况下,客户端不需要进行此类安装。因此,我们的想法是静态地链接到这样的编译器和链接器。
例如在Java中,您可以直接从java代码编译.java类。它可用于从数据库模式自动生成Buisness对象。
答案 0 :(得分:2)
您可以使用c语言前端(clang)到llvm执行此操作。建立在clang之上的static analyzer可以为您提供有关如何继续的一些想法。
答案 1 :(得分:1)
有tinyC:http://bellard.org/tcc/。我对C ++一无所知。
答案 2 :(得分:1)
谷歌的'c口译员'嵌入',你会得到第一次点击
YMMV
答案 3 :(得分:0)
据我所知,c或c ++无法做到这一点。您必须启动一个新进程(在其中执行编译器),并且需要安装编译器。
答案 4 :(得分:0)
你可能想看看the crack language,基于llvm,它处于早期阶段,但似乎与你试图实现的目标非常接近。