错误#include'ing <unordered_map> </unordered_map>

时间:2014-01-02 21:36:04

标签: c++ stl g++

我正在尝试在C ++程序中使用unordered_map,但每次收到错误:boost/unordered_map.hpp: No such file or directory

当我第一次收到此错误时,我使用的是Mac OS X 10.8.5,我想知道我的编译器是否达不到最新的C ++标准。我已经升级到Mavericks 10.9.1,并且我更新了命令行工具。

我还安装了Boost库。但是,原始的unordered_map似乎不是Boost库实现,如果可能的话,我更愿意使用该标准。

在没有Boost的情况下正常编译时,我的#include和命令行工作正常,除了unordered_map的问题:

#include <unordered_map>

g++ -g -Wall testGame.cpp ../card2.cpp ../euchreDeck.cpp -I..

当尝试使用Boost编译时,我尝试了两个单独的命令行,两个都没有成功:

#include <boost/unordered_map.hpp>

g++ -g -Wall testGame.cpp ../card2.cpp ../euchreDeck.cpp -I.. -Iboost_1_55_0
g++ -g -Wall testGame.cpp ../card2.cpp ../euchreDeck.cpp -I.. -lboost_1_55_0

图书馆链接不正确,我的#include语句不正确,还是我遗漏了一些明显的东西?

感谢您的帮助。

2 个答案:

答案 0 :(得分:5)

对于boost,编译器可能找不到库,因为boost不在搜索路径中。

对于std,您必须使用-std=c++11,因为unordered_map是C ++ 11的一项功能。

答案 1 :(得分:0)

像编译器这样的Seens找不到你的include目录。你还需要这样的: "-IC:\\PATH_TO_INCLUDE_FOLDER\\include"