2

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

附言。如果是的话,有没有人有一个很好的例子,在 C++ 代码中执行 .cpp 文件?

4

3 回答 3

3

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

一种方法是使用 Clang(正如您已经指出的那样),源代码中甚至还有一个名为“Clang 解释器”的演示项目:http: //llvm.org/viewvc/llvm-project/cfe/trunk/examples/铿锵翻译/

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

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

于 2012-04-19T11:03:00.000 回答
2

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

  1. 预处理:预处理器获取一个 C++ 源代码文件并处理#includes、#defines 和其他预处理器指令。此步骤的输出是没有预处理器指令的“纯”C++ 文件。

  2. 编译:编译器获取预处理器的输出并从中生成一个目标文件。

  3. 链接:链接器获取编译器生成的目标文件并生成库或可执行文件。

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

更多可以在这里找到-

https://stackoverflow.com/a/6264256/7725220

于 2017-03-29T16:39:39.293 回答
0

有点取决于你所说的“安装”是什么意思。

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

于 2012-04-19T10:58:52.293 回答