imk*_*dal 0 c++ compiler-construction linker boost mingw
在C++中,我正在搞乱升级库,我有"boost \"目录,其中包含所有boost .hpp文件和目录,以及我的编译器在"MinGW\include\boost \"的include文件夹中.现在令我困惑的是,当我想使用文件"lambda.hpp"时,我必须实际键入:
#include <boost/lambda/lambda.hpp>
Run Code Online (Sandbox Code Playgroud)
但如果我要包含整个目录,例如"boost\algorithm \",我只需输入:
#include <algorithm>
Run Code Online (Sandbox Code Playgroud)
即使"algorithm"文件夹不在"MinGW\include"目录中,它也在"MinGW\include\boost \"中.为什么在包含整个目录而不是单个头文件时,我不需要提供完整的路径?
头文件<algorithm>是标准库的一部分,而不是Boost的一部分.
路径相对于预处理器搜索头文件的路径列表.因此,在的情况下<algorithm>有一个文件algorithm在这些路径中的一个的根,而在的情况下,<boost/lambda/lambda.hpp>存在有一个子文件夹另一搜索路径boost,其具有的子文件夹lambda,其具有一个文件lambda.hpp.
顺便说一句,所有Boost头文件都有后缀(即扩展名),.hpp而标准库头文件根本没有.
至于考虑包含完整目录algorithm,预处理器不支持,而是必须boost/algorithm单独包含路径中的文件.
| 归档时间: |
|
| 查看次数: |
133 次 |
| 最近记录: |