如何编译c ++文件的子集,以便我不必编译其他文件MinGW

时间:2015-07-09 11:54:54

标签: c++ windows compilation mingw

问题在于:我想将程序主要用于编译时间,其次是为了便于编写程序。我正在使用我自己编写的“compile.bat”程序包含
g++ -o prog.exe main.cpp -lmingw32 -lSDLmain -lSDL pause >nul为了进行编译(MinGW用于标题中所述的编译)但问题是,虽然我可以在“prog.exe”之后轻松添加更多文件用于编译(它是现在一个单文件列表,所以它不是一个列表),我不知道如何预编译一些文件然后编译一个或两个其他文件来完成编译并制作“prog.exe “档案。我遇到了这个想法,因为我正在阅读有关如何通过重新编译您已更改的文件来减少大型程序的编译时间的常见做法。如果这个问题太具体或没有话题或重复,请告诉我。 :¬)

1 个答案:

答案 0 :(得分:3)

您需要了解如何使用某些构建器程序(请参阅build automation),例如GNU make。您将通过Makefilehere是一个示例)来描述您的构建,make将检查时间戳并仅重新编译所需内容(根据规则和依赖关系)你的Makefile等等......)。

有几种替代构建器(例如omakescons)并且存在Makefile个生成器(例如cmakeautomake

对于一个包含几十个文件的小项目,我建议您自己编写Makefile代码(而不是使用任何Makefile生成器)。使用特定于最近GNU make的特征,甚至可能是guile脚本性。

依赖规则应描述头文件inclusiong++的{​​{3}}应该很方便生成它们。

查看与您类似的现有-M preprocessor options的源代码,以获取灵感。