用G 和Make编译并链接来自不同文件夹的许多源文件

Compile and link many source files from different folders with g++ and make

本文关键字:文件夹 源文件 许多 Make 编译 链接      更新时间:2023-10-16

哪些正确的编译方法和链接许多来自不同文件夹的.CPP文件是使用makefile加油的一个文件夹?

例如,我有以下文件结构:

./Foo/Wow/Bar/example1.cpp
./Foo/Bar/example2.cpp
./Foo/example3.cpp
./main.cpp

现在,我想编译并将所有这些文件链接到一个可执行文件中。哪种适当的方法可以使用makefile?

谢谢s。

没有一种正确的方法。

一种可能性是将代码分为库,每个子目录一个。这些图书馆中的每个库都有自己的makefile。

然后,项目root将具有递归调用的制作文件,以确保这些库都是最新的,然后使用库来构建主可执行文件。

其他人(有时是响亮的)对整个概念。使用现有库(及其现有的makefiles)可能是正确的,但是它们通常会反对将子目录中的代码转换为库的基本思想,只是为了使单个结果文件链接到最终的可执行文件(OTOH,如果您没有体现出可能将其作为有意义的图书馆限定的逻辑概念,那么很少有人对为什么要将代码放入子目录中的原因有很好的解释。