假设我新安装了一个win10系统,想在上面跑通一个gtest测试用例,那需要依次安装visual studio code、g++、cmake、git、gtest。
直接在
vs code官网
下载,这个不难。
使用的是如下的链接:
g++下载
版本选择见下图:
注1:之前下载的那个版本不行,后面make的时候会出现不认识mutex的问题。这个问题的解决办法是在如下链接看到的:
mingw64的posix版本详解
。
注2:一开始参考的这篇文章:
Windows下如何安装MinGW
,但是它的版本不对,所以不要按这个链接下载。但是可以按这个链接的添加环境变量的方式添加变量。
注3:浩哥在帮我解决报错的时候,把lib文件夹也加进去了,如下图:
注4: 添加完环境变量后需要
重启
下终端才能生效。
这时候就可以跑一个hello.cpp试试了。代码如下:
#include <stdio.h>
int main(int argc, char* argv[])
printf( "hello world\n");
return 0;
注:上面是C语言的写法,C++使用iostream和std::cout。
跑通的界面如下图:
这时我发现了一个小问题,执行a.exe时很慢,并且右下角有弹窗,如下图:
解决方案是进入Windows 安全中心,如下图:
然后将云提供的保护关掉,如下图:
关了就好了。
参考链接是:Windows 10环境下如何安装CMake?(更新时间:2021.9.13)
注:安装好了后,用终端测试时,需要重新开终端。
安装好了的截图如下:
注:编译googletest的时候在终端用
cmake -G "MinGW Makefiles" ..
注:在googletest里直接编译不行,得用cmake gui,见windows 下使用 cmake-gui 来编译第三方库的源代码
这里不行的原因可能是googletest比较大,里面有很多未知的东西,可能是某个文件导致了这条指令的失败。下面我们自己写的测试文件的CMakeLists.txt里,用cmake -G “MinGW Makefiles” …是可以的。 盲猜googletest里可能需要加更多的参数。
参考了如下的文档,基本都是默认配置,一路点击next即可:
win10系统Git安装教程『纯小白教程超详细』
这个最麻烦,参考了很多文档,请教了师父,最后总结出一份方法。随便找个目录(我找的是C:\Users\zhanghao\Downloads\code),打开终端。然后执行如下操作:
$ git clone https:
$ cd googletest
$ mkdir build
$ cd build
$ 使用桌面的cmake gui做预编译。方法见上面。
$ mingw32-make
cmake和make跑通的情况如下图:
然后不需要install,在linux系统中,这步的目的是将C:\Users\zhanghao\Downloads\code\googletest\build\lib文件夹添加到/usr/local中,方便所有用户使用,这样就不用在CMkeLists.txt里增加这个库的链接。win10中可能也是同样的操作。但是我们手动做是一样的。
上述make了之后,就会在\googletest\build\lib里生产4个文件,我们需要的是其中2个二进制文件:libgtest.a和libgtest_main.a(如果自己写main函数,是需要的)。而另外2个文件是和mock相关的,我们不需要。这2个二进制文件才是我们要提取的gtest的精华。
方便起见,连同这4个文件一起,我们将这个lib拷贝走,总结步骤如下:
$ 在C:\Users\zhanghao\Downloads\code下新建kata文件夹。这才是我们最后写测试用例的地方。
$ 在kata里建一个3rd文件夹,将上述的\googletest\build\lib文件夹拷贝到3rd里。
$ 将\googletest\googletest\include文件夹拷贝到3rd里,如下图:
在kata文件夹里建好include和src文件夹,以及CmakeLists.txt,如下图:
接下来是很关键的写CmakeLists.txt文件。如下图:
源码见:
cmake_minimum_required(VERSION 3.5)
project(kata)
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/3rd/include
${CMAKE_CURRENT_SOURCE_DIR}/include
link_directories(
${CMAKE_CURRENT_SOURCE_DIR}/3rd/lib
file(GLOB_RECURSE src_files
${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp
add_executable(${PROJECT_NAME} ${src_files})
target_link_libraries(${PROJECT_NAME} gtest)
这里也参考了单元测试其一:gtest。但是我没执行它的sudo make install,其余地方它的写法和我的方法也很像,但是它最后加了
add_test(
Test #测试名
mytest
)#关键!添加测试
正是因为它将gtest放在了cmake里,所以它最后的打印没有下图的run,ok这种结构:
另外的2篇文章应该也是可以用的,需要我好好研究:
- Win10下VScode C++环境配置,Cmake与Gtest的简易使用
- 谷歌单元测试GTest测试方法使用
编写完CMakeList后,还需要写测试用例,在下图的src目录下创建main.cpp和test.cpp文件:
其中,main.cpp的内容是:
#include "gtest/gtest.h"
int add(int a, int b)
return a + b;
TEST(testCase, test1)
EXPECT_EQ(add(2, 4), 6);
int main(int argc, char** argv)
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
test.cpp的内容是:
#include "gtest/gtest.h"
int add2(int a, int b)
return a + b;
TEST(testCase, test0)
EXPECT_EQ(add2(2, 3), 5);
然后再在\kata\build目录下打开cmd或者PowerShell(按shfit的同时右键)(注:不知道为啥git bash here不行,不能输出结果)。
执行如下命令:
cmake -G "MinGW Makefiles" ..
mingw32-make.exe
.\kata.exe
结果就出来了,如下图:
每次都要执行这3条指令好麻烦,在\kata\里写个build.bat,内容如下:
start cmd /k "cd build && cmake -G "MinGW Makefiles" .. && mingw32-make.exe && .\kata.exe"
结果如下:
本文来自个人博客,本文主要简单介绍了GTest的源代码安装与使用以及事件机制,希望对您的学习有所帮助。1、安装源代码下载gtest,release-1.8.0gitclonehttps://github.com/google/googletestgtest编译cdgoogletest生成Makefile文件(先安装cmake,brewinstallcmake),继续输入命令编译:cmakeCMakeLists.txt执行make,生成两个静态库:libgtest.alibgtest_main.amake拷贝到系统目录,注意,如果下诉目录位置在不同版本位置有变动,用find.-name"libg
1 gettext
gettext 是GNU国际化与本地化(i18n)函数库。它常被用于编写多语言程序。
程序源代码需要进行修改以响应 GNU gettext 请求。多数编程语言均已通过字符封装的方式实现了对其的支持。为了减少输入量和代码量,此功能通常以标记别名 _ 的形式使用,所以例如以下C语言代码:
printf(ge
我尝试了一套的gtest配置操作,方法不太主流:
1. 在windows万能的visual studio里建立cmake工程,而不是googletest工程或者一般的空工程。
2. 将gtest作为第三方库引入时,没有把gtest的源码作为子模块和自己的代码一起cmake,而是先把gtest独立build出库文件,再连到自己的代码上。
现在把整个操作过程记录在这里。
Windows下cmake安装
cmake官网
选择最新版的binary
首先要说的是,这种编译与安装不是必须的,用户可以自己下载protoc的二进制文件直接使用。因为开发和调试的原因,我经常反复需要编译不同版本的protobuf,例如NCNN用的protobuf3.4.0。因为重复的过程中自己也没有详细记录过,所以这里记录一下备忘。
(I)第一步,下载gmock。
https://codeload.github.com/google/googletest/tar.gz/refs/tags/release-1.11.0https://codeload.github.com/g
# 克隆仓库
# 慢的话就上proxy git clone https://github.com/google/googletest.git --config https.proxy=https://ip:port
git clone https://github.com/google/googletest.git
cd googletest
mkdir build
cmake .. -DB
安装gtest可以通过两种方式:源码安装和包管理器安装。下面是源码安装的步骤:
1. 确保cmake已经安装。
2. 下载gtest源码:git clone https://github.com/google/googletest
3. 进入gtest目录并创建build目录:cd googletest && mkdir build
4. 进入build目录并执行cmake:cd build && cmake ..
5. 执行make命令编译:make
6. 执行sudo make install命令安装:sudo make install
7. 将生成的两个静态库文件libgtest_main.so和libgtest.so拷贝到/usr/local/lib/目录下,并执行ldconfig:sudo cp lib/libgtest*.so /usr/local/lib/ && sudo ldconfig
8. 将gtest的头文件拷贝到/usr/include目录下:sudo cp -a include/gtest /usr/include
9. 编写一个测试文件并编译运行,运行成功:g++ -std=c++11 test.cpp -lgtest -lpthread ./a.out
注意:如果你使用的是包管理器安装的gtest,那么安装步骤会有所不同。