我正在使用递归Makefile构建项目。基本格式很简单:各个子目录中的源文件,项目根目录中的Makefile。从项目根调用make将调用子目录中的所有makefile。到现在为止还挺好。
所以现在我有了目标文件。如何让主makefile查看哪些目标文件存在于子目录中,最好将它们传递给链接器?
答案 0 :(得分:1)
这实际上不是一个好方法(参见recursive make considered harmful),因为递归makefile会增加多次启动Make程序的开销。实际上,通过从另一个包含一个Makefile而不是从另一个调用它,可以更快地完成同样的事情。如果从子目录中包含make文件,那么这也将解决全局make文件看到所需的所有文件以将它们链接在一起的问题。您可以拥有一个代表所有目标文件的变量,并且您包含的每个make文件都可以附加到此。
另外,请允许我建议使用CMake。它使您的构建机制配置变得更加简单且不易出错,但仍允许您使用Make构建(它为您生成Makefile)。