我正在编写一种编程语言,将源文件转换为C ++并编译它们。
我想添加一种方法来处理大量文件,将它们编译为foo.FN
文件,从而可以使用makefile。更好的解释(感谢@Beta):
您有一个工具可以读取源文件(
foo.cpp
)并编写C ++源文件和头文件(foo.h
和gcc
)。然后编译器(foo.cpp
)读取这些源文件和头文件(foo.h
和foo.o
)并写入目标文件(bar.cpp
)。也许存在相互依赖关系(foo.h
需要.cpp
)。
问题是:我的解释器在GCC编译后删除.h
和#include
。因为这样,它不能使用overflow: auto
,导致它编译时,引用的文件不再存在。我怎么解决这个问题?
答案 0 :(得分:0)
答案分为两部分。
首先,不要编写显式头文件。您知道它们应该包含什么,只需自己执行#include
操作。
其次,不要写出.cpp
文件。使用gcc -x c++ -
从标准输入中读取代码,并让您的工具将C ++标准输出到标准输出,这样您就可以运行tool foo.FN | gcc -c -o foo.o -x c++ -
来生成foo.o
。