【发布时间】:2019-02-18 20:29:03
【问题描述】:
我正在尝试在最新版本的 Visual Studio 2017 上使用 gtest 构建一个简单的测试。代码如下:
#include "pch.h"
#include <gtest/gtest.h>
struct BankAccount
{
int balance = 0;
BankAccount()
{
}
explicit BankAccount(const int balance)
: balance{ balance }
{
}
};
TEST(AccountTest, BankAccountStartsEmpty)
{
BankAccount account;
EXPECT_EQ(0, account.balance);
}
int main(int argc, char* argv[])
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
而构建错误是:
Error C4996 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVED.
You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning.
我已经试过了:
#define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING
但这只会让事情变得更糟。 我不知道如何解决这个错误。
更新
我尝试在预处理器的定义中和包含的上方添加定义。都不行!!
【问题讨论】:
-
你把
#define命令放在哪里了? -
首先包含在上面,然后在预处理器定义的设置中。都没有用。
-
我建议让 GTest 在没有预编译头文件的情况下工作。这将消除一组可能的问题。让 Google Test 运行后,您随时可以开启 PCH。
-
该版本的 gtest 是否可以通过 NuGet 包下载?还是应该在别处找到?
-
我几乎可以肯定我在 Googletest 文档的某处看到了一些关于
tr1问题的内容,但我再也找不到了。
标签: c++ visual-studio testing googletest build-error