C++ 我可以编译一个c++;c++;在没有任何额外程序或安装的情况下执行文件?

C++ 我可以编译一个c++;c++;在没有任何额外程序或安装的情况下执行文件?,c++,compilation,interpreter,clang,C++,Compilation,Interpreter,Clang,我读过Clang和Ch(c++解释器),但我不清楚,是否可以在没有任何安装的情况下运行新生成的.cpp文件?因为我需要在任何电脑上运行最终程序 P.如果是,有没有一个很好的例子,其中一个.cpp文件在C++代码中执行?< /p> 取决于你所说的“安装”的含义。 是的,您可以使用完整的编译器分发程序,编译源代码,然后执行最终结果(全部来自原始exe)。这可能是不可能的,或者至少是非常困难的。您必须在程序中包含整个编译器(包括链接器、汇编器、优化器、预处理器等等),这将使它变得非常庞大 一种方法是

我读过Clang和Ch(c++解释器),但我不清楚,是否可以在没有任何安装的情况下运行新生成的.cpp文件?因为我需要在任何电脑上运行最终程序


P.如果是,有没有一个很好的例子,其中一个.cpp文件在C++代码中执行?< /p> 取决于你所说的“安装”的含义。


是的,您可以使用完整的编译器分发程序,编译源代码,然后执行最终结果(全部来自原始exe)。

这可能是不可能的,或者至少是非常困难的。您必须在程序中包含整个编译器(包括链接器、汇编器、优化器、预处理器等等),这将使它变得非常庞大

一种方法是使用Clang(正如您已经注意到的),甚至在源代码中有一个名为“Clang解释器”的演示项目:

然而,我曾经试图将这个“野兽”编译到我的程序中,但中途放弃了,因为结果二进制文件(或带有外部库的二进制文件)的文件大小达到了几十兆字节(甚至可能是一百兆字节)


我的建议是要么生成一个易于解释的不同脚本(例如,bash/sh脚本,可以在任何unix机器上执行)。

据我所知,这是不可能的,因为CPP文件的编译过程是这样的-

  • 预处理:预处理器采用C++源代码文件,处理<代码> >包含 s,<代码>定义< /code > s和其他预处理器指令。这个步骤的输出是一个没有预处理器指令的“纯”C++文件。

  • 编译:编译器获取预处理器的输出并从中生成一个对象文件

  • 链接:链接器获取编译器生成的对象文件,并生成库或可执行文件

  • 所以,应该有中间文件和可执行文件

    更多信息可以在这里找到-


    谢谢,你已经决定了,我将使用“批处理文件解决方案”,谢谢。