CD到解压缩的googletest目录 1.使用sh调用configure(MSys的一部分):sh configure 1.调用make-〉libgtest.a应该被构建。它被放置在你的googletest目录lib/.libs子目录中 1.请参阅googletest的README了解如何将libgtest.a集成到您的系统中,也可以参阅googletest的googletest wiki入门了解如何编译,或者指定gcc -L<googleTestDir>/lib/.libs的库路径,并添加-lgtest以链接到您的测试项目可执行文件。 1.当使用ASSERT_DEATH宏检查测试代码中的Assert时(表示在库或应用程序中的Assert,而不是在googletest中),调用SetErrorMode- example main:
#include <windows.h>
#include "gtest/gtest.h"
int main (int argc, char** argv)
{
// this prevents annoying error message boxes popping up
// when assert is called in your program code
SetErrorMode(SEM_NOGPFAULTERRORBOX);
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
7条答案
按热度按时间u4dcyp6a1#
花了我一些时间,但我想通了。这里是任何面临同样问题的人的指南。
要在Windows上编译GoogleTest,请按照以下说明操作:
1.我想你已经安装了MSYS的MinGW。
1.从官方网站http://www.cmake.org/下载并安装CMake。使用Win32安装程序版本。完成安装过程后,将可执行文件从“xxx/CMake/bin”复制到“xxx/MinWG/bin”。
1.从http://www.python.org/下载并安装Python。同样,Windows安装程序可以很好地完成这项工作。一旦完成安装过程,将Python文件夹中的“pythoniderexe”复制到“xxx/minWG/bin”。
1.从http://code.google.com/p/googletest/下载最新的稳定GoogleTest,并将其解压缩到某个文件夹中。
1.运行MSYS终端并执行以下命令。
1.如果pthread出现编译错误,请遵循these说明。
1.将包含文件夹“xxx/gtest-x.x.x/include”复制到您的MinGW gcc包含文件中。将库文件“xxx/gtest-x.x.x/*.a”复制到您的MinGW gcc库中。
1.编译测试时,将“-lgtest”参数添加到gcc。
EDIT评论员是对的。可执行文件的拷贝对我来说很有效,但一般来说这不是一个好的实践。尝试使用symbolic link代替。
iibxawm42#
为了不使用cmake/python而只使用mingw make来构建libgtest. a,gtest现在有一个'make'文件夹,其中包含一个普通的旧makefile。
1.确保mingw\bin在路径中(尝试运行'g++'或其他命令)。
1.进入gtest“googletest\make”文件夹并运行“make”。
1.要进行测试,请运行“sample1_unittest”(应显示gtest样本测试输出)。
1.要生成库“libgtest. a”,请运行“ar -rv libgtest. a gtest-all.o”
创建的库是一个完整的静态库,没有生成dll。
应该就这些了。
顺便说一句,这也适用于构建googlemock,只需进入googlemock文件夹而不是googletest,并遵循相同的过程。
sauutmhj3#
该问题是在2011年提出的,得票最多的答案也是在同一年回答的,因此,新的答案将提高问题的有效性。
Mingw64 8.0.2
GoogleTest GitHUb Source Code repo branch 1.10.0
CMake 3.20.4
和Windows 10操作系统
$cd版本
$cmake .. -G "最小生成文件"
$mingw32-生成. exe
[ex:C:\用户[用户名]\源代码\googletest-master\内部版本\库]
MingW64的库中
[ex用法:C:\用户[用户名] \mingw64\x86_64-w64-mingw32\lib]
[ex C:\用户[用户名]\源代码\谷歌测试主程序\谷歌测试\包含\gtest]
复制整个gtest目录并复制到文件夹
C:\用户[用户名] \mingw64\lib\gcc\x86_64-w64-mingw32\8.1.0\include
现在就可以开始了。你可以构建Googltest并将其链接到你的C++项目中。我还粘贴了一个CMakelists.txt示例
我希望它能起作用。
a5g8bdjr4#
来自https://github.com/google/googletest/tree/master/googletest的自述文件:将Google Test构建为独立项目时,典型的工作流程如下:
如果要构建GoogleTest的示例,则应将最后一个命令替换为
hrysbysz5#
作为替代方案,也可以使用通常的MSYS/Mingw make构建Googletest。
所以这是我的另一种方法:
1.确保MSys/MingW已安装在Windows上,且PATH环境已设置为该环境
1.打开一个cmd窗口-您也可以在此处显式设置PATH
1.使用sh调用configure(MSys的一部分):
sh configure
1.调用
make
-〉libgtest.a
应该被构建。它被放置在你的googletest目录lib/.libs
子目录中1.请参阅googletest的README了解如何将
libgtest.a
集成到您的系统中,也可以参阅googletest的googletest wiki入门了解如何编译,或者指定gcc-L<googleTestDir>/lib/.libs
的库路径,并添加-lgtest
以链接到您的测试项目可执行文件。1.当使用
ASSERT_DEATH
宏检查测试代码中的Assert时(表示在库或应用程序中的Assert,而不是在googletest中),调用SetErrorMode
- example main:qxgroojn6#
只要路径中有二进制文件,就不需要复制,安装python和CMake,在msys(MinGW控制台)中测试
如果你看到路径,那么你就有了二进制文件,如果没有,把它们的路径添加到你的环境变量〉PATH中,或者只是在msys中更新(如果需要的话更新安装路径)
然后,您可以按照建议构建:
测试是否一切正常:
gblwokeq7#
对于MSYS2,只需安装mingw-w64-x86_64-gtest包:
然后使用标志
-lgtest -lgtest_main
编译测试。