gpt4 book ai didi

c++ - Visual Studio 2013 错误 LNK1120 : 1 unresolved externals and error LNK2019: unresolved external symbol

转载 作者:行者123 更新时间:2023-11-28 02:12:36 26 4
gpt4 key购买 nike

我是谷歌测试框架的新手。这是我的第一个谷歌测试测试项目。我做了像这个网站http://www.bogotobogo.com/cplusplus/google_unit_test_gtest.php这样的配置。但我在途中更改了 .cpp 文件。现在出现了上述链接错误。

我的输出如下

1>------ 全部重建开始:项目:GoogleTest,配置:调试 Win32 ------ 2>------ 全部重建开始:项目:SimpleMath,配置:调试 Win32 - ----- 1> gtest_main.cc 2> SimpleMath.cpp 2> SimpleMath.vcxproj -> D:\My Document\cpp\GoogleTest\Debug\SimpleMath.exe 1> gtest-all.cc 1> 生成代码.. . 1>LINK:警告 LNK4068:/MACHINE 未指定;默认为 X86 1> GoogleTest.vcxproj -> D:\My Document\cpp\GoogleTest\Debug\GoogleTest.lib 3>------ 重建全部开始:项目:unittest_cube,配置:调试 Win32 ----- - 3> unittest_cube.cpp 3> stdafx.cpp 3> 生成代码... 3>unittest_cube.obj:错误 LNK2019:未解析的外部符号“public: double __thiscall Cube::cubic(double)” (?cubic@Cube@@ QAENN@Z) 在函数“private: virtual void __thiscall testMath_myCubeTest_Test::TestBody(void)” (?TestBody@testMath_myCubeTest_Test@@EAEXXZ) 3>D:\My Document\cpp\GoogleTest\Debug\unittest_cube.exe 中引用: fatal error LNK1120:1 个 Unresolved external 问题========== 全部重建:2 次成功,1 次失败,0 次跳过 ==========

如何修复此链接错误。提前致谢。

我的unittest_cube.cpp文件(在测试工程里面)如下

#include "gtest/gtest.h"
#include "simplemath.h"


int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}

TEST(testMath, myCubeTest)
{
Cube c;
EXPECT_EQ(1000.0, c.cubic(10));
//EXPECT_TRUE(c.cubic(2) == 8);
//ASSERT_EQ(1000.0, c.cubic(10));
}`

我的 SimpleMath.cpp 是这样的

#include "simplemath.h"
#include <iostream>

using namespace std;
int main()
{
Cube c;
double num= c.cubic(10);
//cout << num;
//getchar();
return 0;
}

double Cube::cubic(double d)
{
return pow(d, 3);
}

我的 simplemath.h 文件是这样的

#include <cmath>


class Cube{
public:
double cubic(double i);
};

最佳答案

这里有两个问题:

  1. 第一个是您确实将 SimpleMath.cpp 测试添加到您的 VS 项目中(您的输出表明您正在使用 Visual Studio)。为此,请在解决方案资源管理器中右键单击项目的“源文件”过滤器,选择“现有项目...”,然后添加文件 SimpleMath.cpp。这应该可以解决第一个问题。
  2. 第二个问题是您有两个main 函数。这意味着在正确添加文件 SimpleMath.cpp 后,您将收到另一个链接器错误。删除或注释掉 SimpleMath.cpp 中的主要函数以成功构建您的代码。

关于c++ - Visual Studio 2013 错误 LNK1120 : 1 unresolved externals and error LNK2019: unresolved external symbol,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35145403/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com