【问题标题】:namespace boost has no member命名空间提升没有成员
【发布时间】:2016-05-02 09:40:04
【问题描述】:

我下载了最新版本的 Boost 库 1_60_0 并尝试使用它,但很快就遇到了麻烦。

boost::unordered_map<int, int> map;

这段代码说“命名空间提升没有成员 unordered_map”。我检查了文件,但它在那里。基本上我尝试从 boost 命名空间访问的所有内容都发生了同样的情况。

头包含如下:

#include <D:/IP/boost_1_60_0/boost/graph/adjacency_list.hpp>
#include <D:/IP/boost_1_60_0/boost/graph/graph_traits.hpp>
#include <D:/IP/boost_1_60_0/boost/graph/connected_components.hpp>
#include <D:/IP/boost_1_60_0/boost/unordered_map.hpp>
#include <D:/IP/boost_1_60_0/boost/graph/floyd_warshall_shortest.hpp>
#include <D:/IP/boost_1_60_0/boost/numeric/ublas/matrix.hpp>
#include <D:/IP/boost_1_60_0/boost/numeric/ublas/io.hpp>

我猜我应该包括更多的东西,但不知道是什么。有什么建议吗?

【问题讨论】:

  • 您的构建日志中是否还有其他错误?我猜包含的文件没有打开或读取
  • 为什么你们从来不关注Da Documentation? ))
  • link 是这样开始的
  • 添加编译器参数 -ID:/IP/boost_1_60_0/ 并包含您的标头,例如 #include &lt;boost/unordered_map.hpp&gt;

标签: c++ boost


【解决方案1】:

unordered_map.hpp 以这种方式包含其他 boost 头文件:

#include <boost/config.hpp>

这意味着必须将boost 文件夹设置为额外的包含目录才能使其工作。

我假设您正在 MSVC 上进行编译,如果是这样,请右键单击您的项目:属性 -> C/C++ -> 常规并将文件夹 D:/IP/boost_1_60_0/ 添加为附加包含目录。

docs 也为您解答了这个问题。

【讨论】:

  • 如描述here
  • 是的,这就是问题所在。谢谢。但现在我有一个不同的问题。我也在使用 OpenCV,一个可以包含多个目录吗?因为现在找不到 CV 文件。
  • @LorenaSfăt 您可以根据需要添加许多目录。但也要考虑到一些库不仅仅是标题。
  • @LorenaSfat(抱歉)是的,你可以很容易地用 ; 分隔它们
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-23
  • 1970-01-01
  • 1970-01-01
  • 2018-03-16
  • 2021-06-05
  • 2021-04-05
  • 1970-01-01
相关资源
最近更新 更多