是否存在可直接嵌入到C/ c++程序中的C/ c++编译器/链接器?

Is there a C/C++ compiler/linker which is embedable directly in a C/C++ program?

本文关键字:c++ 编译器 链接 程序 可直接 是否 存在      更新时间:2023-10-16

其思想是在运行时生成C/c++代码,将其编译为共享对象,并在当前进程中加载该共享对象。

我知道这可以通过在主机平台(GCC或MSVC)上使用现有的编译器安装来完成,但在实际场景中,客户端不需要这样的安装。因此,我们的想法是静态地与这样的编译器和链接器链接。

例如,在Java中,您可以直接从Java代码编译. Java类。它可用于从数据库模式自动生成业务对象。

您可以使用c语言的前端(clang)来执行此操作。构建在clang之上的静态分析器可能会给您一些关于如何进行的想法。

有tinyC: http://bellard.org/tcc/。

Google 'c interpreter embed',你会得到第一个结果

  • http://www.softintegration.com/(可嵌入的C/c++解释器)
    • 评审/文章
  • http://code.google.com/p/picoc/(C ?)

YMMV

据我所知,这样的事情在c或c++中是做不到的。您必须启动一个新进程(在其中执行编译器),并且需要安装编译器

您可能想看看基于llvm的破解语言,它还处于早期阶段,但似乎离您想要实现的目标很近。