【问题标题】:Specifying full path when inlcuding directories in C++在 C++ 中包含目录时指定完整路径
【发布时间】:2012-09-18 06:34:30
【问题描述】:

在 C++ 中,我搞乱了 boost 库,并且我在“MinGW\include\boost\”的编译器的包含文件夹中拥有包含所有 boost .hpp 文件和目录的“boost\”目录。现在让我感到困惑的是,当我想使用文件“lambda.hpp”时,我必须实际输入:

 #include <boost/lambda/lambda.hpp>

但如果我包含整个目录,例如“boost\algorithm\”,我只需输入:

#include <algorithm>

即使“算法”文件夹不在目录“MinGW\include”中,它也在“MinGW\include\boost\”中。 为什么在包含整个目录而不是单个头文件时不需要提供完整路径?

【问题讨论】:

  • algorithm 不是文件夹,是 STD 头文件,位于标准 C++ 默认包含目录中。 boost/algorithm 文件夹是另一回事,它包含许多文件。

标签: c++ boost compiler-construction linker mingw


【解决方案1】:

头文件&lt;algorithm&gt; 是标准库的一部分,而不是Boost。

路径与预处理器搜索头文件的路径列表相关。因此,在&lt;algorithm&gt; 的情况下,其中一个路径的根目录中有一个文件algorithm,而在&lt;boost/lambda/lambda.hpp&gt; 的情况下,另一个搜索路径有一个子文件夹boost,其中有一个子文件夹@987654326 @ 其中有一个文件lambda.hpp

顺便说一句,所有 Boost 头文件都有后缀(即扩展名).hpp,而标准库头文件根本没有。

至于认为您包含完整目录algorithm,预处理器不支持,而是您必须单独包含路径boost/algorithm中的文件。

【讨论】:

    猜你喜欢
    • 2014-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-31
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    相关资源
    最近更新 更多