为什么g ++ -MM选项忽略当前工作目录的包含文件

时间:2015-04-10 07:41:29

标签: c++

请考虑以下示例

myproj/
    main.cc
    test.h

main.cc simple包含test.h with

#include "myproj/test.h"

我在myproj的同一个目录中运行g ++ -MM -M ,我得到了

$ g++ -MM myproj/main.cc
main.o: myproj/main.cc
$ g++ -M myproj/main.cc
main.o: myproj/main.cc /usr/include/stdc-predef.h myproj/test.h

您会看到 -MM 选项忽略标题 myproj / test.h

问题是myproj / test.h不是系统标题,为什么 -MM 选项会忽略它。

1 个答案:

答案 0 :(得分:0)

在include中,指定相对于当前源文件的头的路径(在您的情况下为main.cc)。你需要

#include "test.h"