错误#include'ing <unordered_map>

Dub*_*ack 1 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..
Run Code Online (Sandbox Code Playgroud)

当尝试使用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
Run Code Online (Sandbox Code Playgroud)

如果库没有正确链接,我的#include语句不正确,还是我遗漏了一些明显的东西,这是一个问题吗?

谢谢您的帮助.

Seb*_*ler 5

因为boost编译器可能找不到库,因为boost它不在搜索路径中.

对于std你将不得不使用-std=c++11,因为unordered_map是一个C++ 11功能.