C ++:导入/包含系统

时间:2017-08-31 21:53:23

标签: c++ import package

我正在编写一种编程语言,将源文件转换为C ++并编译它们。

我想添加一种方法来处理大量文件,将它们编译为foo.FN文件,从而可以使用makefile。更好的解释(感谢@Beta):

  

您有一个工具可以读取源文件(foo.cpp)并编写C ++源文件和头文件(foo.hgcc)。然后编译器(foo.cpp)读取这些源文件和头文件(foo.hfoo.o)并写入目标文件(bar.cpp)。也许存在相互依赖关系(foo.h需要.cpp)。

问题是:我的解释器在GCC编译后删除.h#include。因为这样,它不能使用overflow: auto,导致它编译时,引用的文件不再存在。我怎么解决这个问题?

1 个答案:

答案 0 :(得分:0)

答案分为两部分。

首先,不要编写显式头文件。您知道它们应该包含什么,只需自己执行#include操作。

其次,不要写出.cpp文件。使用gcc -x c++ -从标准输入中读取代码,并让您的工具将C ++标准输出到标准输出,这样您就可以运行tool foo.FN | gcc -c -o foo.o -x c++ -来生成foo.o