如何编译 c++ 文件的子集,这样我就不必编译其他文件 MinGW
How to compile a subset of c++ files so that I do not have to compile the other files MinGW
问题是:我想拆分我的程序,主要是为了编译时间,其次是为了便于编写程序。我正在使用我自己编写的包含
的 "compile.bat" 程序
g++ -o prog.exe main.cpp -lmingw32 -lSDLmain -lSDL
pause >nul
以便进行编译(如标题中所述,MinGW 正在用于编译)但问题是,尽管我可以轻松地在 "prog.exe" 之后的列表中添加更多文件进行编译(这是one-file 现在是一个列表,所以它不是一个列表),我不知道如何处理一些文件 pre-compiled 然后编译一两个其他文件以完成编译并制作"prog.exe" 文件。我之所以想到这个想法,是因为我正在阅读关于如何将大型程序的编译时间最小化的常见做法是仅 re-compiling 您已更改的文件。如果这个问题太具体或 out-of-topic 或重复,请告诉我。 :¬)
你需要学习如何使用一些生成器程序(阅读 build automation) like GNU make. You'll describe your build thru a Makefile
(here 是一个例子)并且 make
将检查时间戳并只重新编译需要的东西(根据规则和依赖关系在您的 Makefile
中给出,等等...)。
有几个替代构建器(例如 omake, scons) and there exist Makefile
generators (e.g. cmake, automake)
对于只有几十个文件的小项目,我建议您自己编写 Makefile
代码(不要使用任何 Makefile
生成器)。使用最新 GNU make
特有的功能,甚至 guile 脚本能力。
依赖规则应该描述 g++
的头文件 inclusion. The -M
preprocessor options 应该很容易生成它们。
查看与您相似的现有 free software 的源代码以获取灵感。
问题是:我想拆分我的程序,主要是为了编译时间,其次是为了便于编写程序。我正在使用我自己编写的包含
的 "compile.bat" 程序
g++ -o prog.exe main.cpp -lmingw32 -lSDLmain -lSDL
pause >nul
以便进行编译(如标题中所述,MinGW 正在用于编译)但问题是,尽管我可以轻松地在 "prog.exe" 之后的列表中添加更多文件进行编译(这是one-file 现在是一个列表,所以它不是一个列表),我不知道如何处理一些文件 pre-compiled 然后编译一两个其他文件以完成编译并制作"prog.exe" 文件。我之所以想到这个想法,是因为我正在阅读关于如何将大型程序的编译时间最小化的常见做法是仅 re-compiling 您已更改的文件。如果这个问题太具体或 out-of-topic 或重复,请告诉我。 :¬)
你需要学习如何使用一些生成器程序(阅读 build automation) like GNU make. You'll describe your build thru a Makefile
(here 是一个例子)并且 make
将检查时间戳并只重新编译需要的东西(根据规则和依赖关系在您的 Makefile
中给出,等等...)。
有几个替代构建器(例如 omake, scons) and there exist Makefile
generators (e.g. cmake, automake)
对于只有几十个文件的小项目,我建议您自己编写 Makefile
代码(不要使用任何 Makefile
生成器)。使用最新 GNU make
特有的功能,甚至 guile 脚本能力。
依赖规则应该描述 g++
的头文件 inclusion. The -M
preprocessor options 应该很容易生成它们。
查看与您相似的现有 free software 的源代码以获取灵感。