gpt4 book ai didi

c++ - 在 Windows 上使用 Gtest 和 Gmock

转载 作者:搜寻专家 更新时间:2023-10-31 00:55:46 26 4
gpt4 key购买 nike

我在 Windows10 上开始使用 Gtest 和 Gmock 时遇到问题。我通常在 Linux 上工作,但想切换到 Windows 并遇到了问题。

我设法根据文档(使用 Cmake 和 Visual Studio)构建了 Gmock 和 Gtest。我在适当的目录中有 gmock.lib 和 gtest.lib 文件。但是当我想将它们链接到我的测试程序时,我会看到许多“ undefined reference ”类型的错误。

我使用的命令是:

g++ "-LC:\\Users\\jacek\\cpp\\googletest\\googlemock\\Debug" "-LC:\\Users\\jacek\\cpp\\googletest\\googlemock\\gtest\\Debug" -o HelloWorld "src\\counter.o" "src\\counter_test.o" -lgmock -lgtest

错误例如:

C:\Users\jacek\workspace\HelloWorld\Debug/../src/counter_test.cpp:14: undefined reference to testing::Message::Message()' C:\Users\jacek\workspace\HelloWorld\Debug/../src/counter_test.cpp:14: undefined reference to testing::internal::AssertHelper::AssertHelper(testing::TestPartResult::Type, char const*, int, char const*)'

我尝试对此进行搜索,发现也许我应该构建共享库。我用适当的选项重建了 gmock 和 gtest,现在我也有 dll 文件,但我仍然收到相同的错误。

我在这里做错了什么?

Linux 上的库名称与 Windows 上的库名称不同会不会是一个问题? (libgmock.a vs gmock.lib)因此我应该将命令中的某些内容更改为 g++ 吗?

我粘贴的路径是好的,文件都在那里(否则错误会不同)。

我在这里错过了什么?

最佳答案

除了你的正确答案:如果你想使用外部库(如 gmock 或 gtest),你必须使用相同的编译器编译库和你的程序。这就是为什么您的程序会抛出 undefined reference 的错误。在 visual studio 中有 MSVC 编译器。如果你想使用 VS,那么也只需使用 VS 编译你的程序。这还不是全部,您必须使用相同的编译器和相同的设置(例如在 Debug模式下编译)

我只是想将此添加到您的回答中。因为你写道:

It turned out that I cannot compile libraries with Visual Studio

这是错误的,您可以使用 VS 编译库,但不能将它们链接到您的程序。也许那已经很清楚了,那么请原谅我的回答。

关于c++ - 在 Windows 上使用 Gtest 和 Gmock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41272942/

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