尽管使用-I标志,但没有这样的文件或目录

时间:2019-06-27 20:55:37

标签: c++ gcc

我想运行预处理器并使用以下命令生成.i文件 (我基于http://jkorpela.fi/html/cpre.html):

gcc -Irange/v3/action -x c -P -C -E range/v3/action.hpp

但是我有错误:

  

range / v3 / action.hpp:17:10:致命错误:range / v3 / action / action.hpp:没有此类文件或目录    #include <range/v3/action/action.hpp>

从包含目录调用该命令。目录树如下所示:

-include
  -range
    -v3
      -action.hpp (file)
      -action (directory)
        -action.hpp

我尝试用其他选项替换-I标志,例如-Irange / **,但是它也无法正常工作。

感谢您的解决方案或建议。

1 个答案:

答案 0 :(得分:2)

#include中指定的路径被附加到-I中的目录中。因此,它正在寻找range/v3/action/range/v3/action/action.hpp。这是在复制目录路径,因为您在-I#include中都有它。

使用-I.从当前目录开始搜索,或使用#include <action.hpp>仅在-I目录中搜索文件名。