我可以在没有任何额外程序或安装的情况下在C++文件执行中编译C++文件吗?
我正在阅读Clang和Ch(C++解释器),但对我而言并不清楚,是否可以在没有任何安装的情况下运行新生成的.cpp文件?因为我需要运行任何电脑上的最终程序...我可以在没有任何额外程序或安装的情况下在C++文件执行中编译C++文件吗?
ps。如果是的话,没有人有一个很好的例子,其中一个.cpp文件正在C++代码中执行?
这可能是不可能的,或者至少很难。你必须在你的程序中包含整个编译器(包括链接器,汇编器,优化器,预处理器等),并且这会使其非常大。
这样做的一种方法是用锵(因为你已经注意到),甚至还有在源称为“锵解释”演示项目:http://llvm.org/viewvc/llvm-project/cfe/trunk/examples/clang-interpreter/
不过,我曾试图编译这个“野兽”成我的程序放弃了一半,因为结果二进制文件(或带有外部库的二进制文件)的文件大小达到几十兆字节(甚至可能是一百)。
我的建议是要么产生一个不同的脚本(例如bash/sh脚本,你可以在任何unix机器上执行),这些脚本可以很容易地解释。
类型取决于你的意思是“装置”。
是的,你可以用一个完整的编译器分发你的程序,编译源代码,然后执行最终结果(全部来自原始exe文件)。
据我所知,这是不可能的,因为一个CPP文件的编译过程就像是这个 -
预处理:预处理需要一个C++源代码文件,并处理了
#include
S,#define
s和其他预处理指令。这一步的输出是一个没有预处理器指令的“纯”C++文件。编译:编译器获取预处理器的输出并从中生成一个目标文件。
链接:链接器获取由编译器生成的目标文件,并生成库或可执行文件。
所以,应该有中间文件和可执行文件。
更可以这里 - 找到
谢谢,你下定了决心,即时通讯的“批处理文件解决方案”,由于去。 – krishkule 2012-04-19 11:14:59