c++ - make/gmake 的条件依赖

标签 c++ dependencies makefile gnu-make

有没有办法让 make/gmake 对条件依赖采取行动?

我有这条规则:

$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
  $(CPPC) -c $(FLAGS_DEV) $< -o $@

一般情况下,每个.cpp文件都有对应的.h文件;但是也有一些异常(exception)。有没有办法用gmake实现“如果它存在就依赖它”?如果做不到这一点,是否有针对此类设置的最佳实践?

提前致谢;干杯!

更新:我正在使用 GCC

最佳答案

更好的方法是使用 gcc -MM 实际确定 cpp 文件的依赖关系,并将它们包含在 makefile 中。

SRCS = main.cpp other.cpp
DEPS = $(SRCS:%.cpp=$(DEP_DIR)/%.P)

$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
  $(CPPC) -c $(FLAGS_DEV) $< -o $@

$(DEP_DIR)/%.P: $(SRC_DIR)/%.cpp
  $(CPPC) -MM $(FLAGS_DEV) -MT $(OBJ_DIR)/$*.o -MP -MF $@ $<

-include $(DEPS)

关于c++ - make/gmake 的条件依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2205603/

相关文章:

c++ - 如何从 SYCL 内核中提取控制流?

c++ - Visual Studio 2015 : Can't create a new empty project c++

maven - 在Gradle中过滤存储库的依赖项查找

c++ - 加速器资源表出错

c++ - 在 Visual Studio 2010 中编译 C++ 程序时出错

linker - 链接具有相互依赖关系的静态 fortran 库

java - 检测未连接图中的循环

gcc - 我是否正确使用了 libtool?

c - 为 makefiles/kconfig 中的变量赋值

c++ - Make每次都会编译所有文件,包括未更改的文件