【发布时间】:2012-09-20 12:30:48
【问题描述】:
我正在开发我的第一个开源 C++ 项目:https://github.com/jehugaleahsa/spider-cpp。
我正在管理我自己的 Makefile,我有关于如何管理依赖项的“最佳实践”问题。现在,我使每个 .o 文件依赖于 .cpp 文件中包含的每个头文件。所以:
code.o: code.cpp code.hpp dep1.hpp de2.hpp
g++ -c code.cpp
首先,我很确定 Make 支持创建目标文件的简写。如果有人能举个例子,我会很感激的。
接下来,有没有办法避免将每个包含的标头列为依赖项?我想确保如果我更改依赖项,这些更改仍然兼容。列出包含的标头既繁琐又容易搞砸。
【问题讨论】:
-
你可能想改用 CMake;它的语法比 make 更简单(好吧,无论如何,不同),而且它是可移植的;它为运行它的平台上最常见的 IDE 生成 makefile 或项目文件。
-
或预制。 CMake 生成 makefile,但这些 makefile 仍然依赖于 CMake。 premake 可以生成可以作为 makefile 分发的 makefile。无论哪种方式,makefile 都可能变得笨拙,并且是特定于平台/IDE/编译器的(除非您将它们设为“通用”,这更加笨拙)。
-
看一下 GNU make 手册,很详细。不要被无数的“做替换,这次做对了”的提议所吸引,没有一个获得显着的牵引力。 “足够好,甚至是笨拙”就是“足够好”。
标签: c++ makefile dependencies object-files