Visual Studio 2017上的gtest / Google Test C ++构建错误

问题描述 投票:0回答:1

我正在尝试使用最新版本的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

但它只是让事情变得更糟。我不知道如何解决这个错误。

UPDATE

我尝试在预处理器的定义和上面的包含中添加define。既不起作用!!

c++ visual-studio testing googletest build-error
1个回答
0
投票

试着去:

查看 - >属性 - > C / C ++ - >预处理器

并将预处理程序定义设置为_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING

另一种解决方案是通过定义TR1来重新启用_HAS_TR1_NAMESPACE

但是,禁用错误不是一个好主意。由于项目设置不正确,您的警告可能存在,您应通过将gtest设置为GTEST_LANG_CXX11来通知1您的编译器版本支持更新的C ++版本。

© www.soinside.com 2019 - 2024. All rights reserved.