2015-11-11 65 views
0

我想弄清楚如何在我的C++项目中使用C++ 11头文件。具体来说,我正尝试使用FakeIt嘲讽框架(https://github.com/eranpeer/FakeIt)对我用C++构建的遗留应用程序进行单元测试。在C++源文件中包含C++ 11头文件

FakeIt页面说它支持C++ 11 & C++项目,但是当我使用库中的头文件构建我的应用程序时,它抱怨无法解析C++ 11符号。

gtest/include/fakeit.hpp:28:25: error: unordered_set: No such file or directory 
gtest/include/fakeit.hpp:29:17: error: tuple: No such file or directory 
gtest/include/fakeit.hpp:32:18: error: atomic: No such file or directory 

我是C++的新手,所以在这里感谢任何指针。

+0

“在C++文件中使用C++ 11头文件”这是什么意思? – juanchopanza

+0

我有一个C++源文件,我使用g ++编译器(没有C++ 11)编译,但我想包含一个C++ 11头文件。我想知道这将如何工作,或者它甚至会工作? – broun

+0

@broun _“without C++ 11”_如果不使用“-std = C++ 11”选项,这是不可能的。你期望什么? –

回答

3

默认情况下,C++ 11支持通常未启用。用-std=c++11参数编译你的程序。例如:

g++ -std=c++11 -I/path/to/libray file.cpp

另外,请确保您的编译器实际上支持C++ 11,如果它不明白-std=c++11应该抱怨。 Here是各种g ++版本支持的C++ 11功能列表。