【发布时间】:2018-01-02 11:36:11
【问题描述】:
我的源代码的文件夹结构定义如下:
src
|--c
|--c.h
|--c.cpp
“c.h”声明了一个名为“B”的类,“c.cpp”定义了“B”类。
假设我们现在在文件夹 'src' 中。我跑
g++ -I./ -MM -MT c/c.o -MF c/c.d c/c.cpp
为“c/c.cpp”生成依赖文件“c/c.d”。然而,文件 'c/c.d' 的内容并不包含 'c/c.h',即使我在 'c/c.cpp' 中包含了 'c/c.h' by
#include "c/c.h".
但是,如果我们在文件夹 'c' 中并运行上述命令,结果会有所不同。通过在上述过程中将'c/c.h'替换为'c.h',我可以获得正确的依赖文件(意味着'c.h'在依赖文件中)。
有谁知道第一个进程漏掉头依赖的原因吗?
【问题讨论】:
标签: c++ linux dependencies g++