【问题标题】:GNU makefile detect header changesGNU makefile 检测标头更改
【发布时间】:2013-05-23 21:41:05
【问题描述】:

我有一个包含几十个源文件和头文件的目录。有没有比make 的以下%.o 目标更好或更清洁的方法来检测对头文件的更改?编译对象时,g++ 会同时调用.cc.h 文件,这似乎不正确,它应该会自动找到.h 文件。

%.o: %.cc %.h
    g++ -c $^

OBJECTS=headless-driver.o config.o simplefm2.o emulator.o basis-util.o objective.o weighted-objectives.o motifs.o util.o

learnfun : $(OBJECTS) learnfun.o
    g++ $^ -o $@

【问题讨论】:

标签: gnu-make


【解决方案1】:

%.o: %.cc %.h

g++ -c $^

您正在指定 $^,它扩展到所有依赖项。如果你只想要 Gcc 命令行的第一个依赖,请改用$<

【讨论】:

  • 完美!这正是我想要的。
  • 它不考虑#include指令引入的依赖关系。
  • 当然是真的。如果您有较深的头文件关系,可以使用单独的工具来生成头文件依赖项includemakedepend 等)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-11
  • 1970-01-01
相关资源
最近更新 更多