【发布时间】:2015-11-11 08:00:42
【问题描述】:
我正在尝试弄清楚如何在我的 C++ 项目中使用 C++11 标头。具体来说,我正在尝试使用 FakeIt 模拟框架 (https://github.com/eranpeer/FakeIt) 对使用 C++ 构建的遗留应用程序进行单元测试。
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++ 的新手,因此非常感谢您的指点。
【问题讨论】:
-
“C++ 文件中的 C++11 标头”是什么意思?
-
我有一个使用 g++ 编译器(没有 C++11)构建的 C++ 源文件,但我想包含一个 C++11 头文件。我想知道这将如何工作,甚至会如何工作?
-
@broun "without C++11" 不使用
-std=c++11选项是不可能的。你期待什么? -
C++11 不是一门独立的语言,它是 C++ 的一个版本。如果要在项目中使用 C++11 功能,则必须将其编译为(至少)C++11。对于 g++,这意味着传递
-std=c++11标志。 -
"FakeIt 是用 C++11 编写的,可用于测试 C++11 和 C++ 项目。"他们的文档中似乎有一个错误。如果它被打包在一个单独的头文件中,并且它使用 C++11,那么没有 C++11 就无法编译你的项目。
标签: c++ unit-testing c++11 mocking