gtest
- 在 github 上下载 googletest 源码
- 查看 googletest/README.md 文件,里面有对系统的一些要求

- 查看 googletest/googletest/README.md 文件

使用命令行构建构建项目使用命令: g++ -std=c++11 -isystem ./include -I.\ -pthread -c ./src/gtest-all.cc ar -rv libgtest.a gtest-all.o
通过使用 ar(archive,打包)命令,将 .o 文件打包为 .a (静态链接库)文件 使用 cmake 构建 在当前文件夹下新建 build 文件夹,用于编译,进入 build 文件夹,然后 cmake .. make,编译成功。对不起这里可能会失败的,如果当前 g++编译器没有使用 -std=c++11 选项,可能会报错找不到 nullptr,在 CMakeLists.txt 文件中加入 SET(CMAKE_CXX_FLAGS "-std=c++11") mkdir build cd build cmake .. make
此时在 build 目录下生成了 lib/libgtest.a 文件 3. 编译 sample 文件 cd make make ./sample1_unittest ./sample1_unittest 想要将运行结果保存到文件可以使用如下命令 ./sample1_unittest > testlog
- 在其他项目工程中使用 gtest 项目目录结构
---
|---build
|---include
|---gtest
|---
|---lib
|---libgtest.a
|---src
|---sample.h
|---sample.cpp
|---CMakeLists.txt
|---test
|---sample_unittest.cpp
|---main.cpp
|---CMakeLists.txt
---
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
将 googletest/googletest/include 目录下的 gtest 文件夹拷贝到 include 目录,libgtest.a 文件拷贝到 lib 目录。测试代码写在 test 目录
编写 CMakeLists.txt 文件 #CMakeLists.txt CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(mytest) SET(CMAKE_CXX_FLAGS "-std=c++11 -lgtest -lpthread")#设置编译选项
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include) #添加包含目录 LINK_DIRECTORIES(${PROJECT_SOURCE_DIR}/lib) #添加编译的 lib 目录
ADD_SUBDIRECTORY(test) #添加子文件夹 ADD_SUBDIRECTORY(src) #添加子文件夹
add_executable(main main.cpp) #添加可执行程序 main target_link_libraries(main gtest test src) #将静态库连接到 main
#------------------------------------------------- #file:src/CMakeLists.txt add_library(src sample.cpp)
#------------------------------------------------- #file:test/CMakeLists.txt add_library(test sample_unittest.cpp)
然后再 build 目录
cmake ..
make

大功告成