网上大部分教程,基于cmake生成gtest gmock库,用makefile生成gtest.a gmock.a的方法模糊,整理一篇文档,快速搞定这部分工作。
-
cmake编译gooleetest源码生成gtest gmock库实际上更简单,习惯用makefile的参照本文。
-
先github下载googletest源码 https://github.com/google/googletest.git 切换到tag,找一个版本下载,我选择的是下面这个版本
关于编译方法,可以参照googletest和googlemock下面的README.md,这个很重要,看懂了就能编译了
里面详细记录了该怎么编译googletest,截图示例
-
linux编译简单-直接使用googletest和goolegmock下面自带makefile编译
-
windows上编译可以用上述的makefile,但是因为-pthread不支持,所以稍微有点问题,使用自己生成makefile的编译文件如下:
object = main.o TestA.o sample1_unittest.o sample1.o cpp = ${fileter %.cpp} GTEST_DIR = ../googletest/googletest GMOCK_DIR = ../googletest/googlemock VPATH=${GTEST_DIR}/src:${GMOCK_DIR}/src GTESTHEAD=-I${GTEST_DIR}/include -I${GMOCK_DIR} all: libgtest.a libgmock.a test test:$(object) g++ -isystem ${GTEST_DIR}/include $(object) libgtest.a libgmock.a -o test #编译生成GTEST libgtest.a: gtest-all.cc g++ -isystem ${GTEST_DIR}/include -I${GTEST_DIR}\ -pthread -c ${GTEST_DIR}/src/gtest-all.cc ar -rv libgtest.a gtest-all.o #编译生成GMOCK libgmock.a: gmock-all.cc g++ -isystem ${GMOCK_DIR}/include ${GTESTHEAD}\ -pthread -c ${GMOCK_DIR}/src/gmock-all.cc ar -rv libgmock.a gmock-all.o $(object):%.o:%.cpp g++ -c $< -I$(GTEST_DIR)/include -o $@ .PHONY : clean clean: rm -rf $(object); rm -rf test.exe *.o *.a
本机代码目录说明: googletest是github下载的源码目录, source 目录是 main.cpp等自定义文件目录