子嘉的博客 子嘉的博客
首页
bic-bic
技术
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

高子嘉

没有比脚更长的路,没有比人更高的山
首页
bic-bic
技术
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 技术文档

  • GitHub技巧

  • 博客搭建

  • 服务端

    • deploy
    • nginx
    • vim
    • vimrc
    • gtest
  • distributed

  • golang

  • db

  • docker

  • linux

  • 技术
  • 服务端
子嘉
2022-06-05

gtest

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

gtest cmake

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

gtest cmake

使用命令行构建构建项目使用命令: 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

  1. 在其他项目工程中使用 gtest 项目目录结构
---
|---build
|---include
|---gtest
|---
|---lib
|---libgtest.a
|---src
|---sample.h
|---sample.cpp
|---CMakeLists.txt
|---test
|---sample_unittest.cpp
|---main.cpp
|---CMakeLists.txt
---
1
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

gtest cmake

大功告成

编辑 (opens new window)
上次更新: 2023/02/24, 10:34:03
vimrc
理论

← vimrc 理论→

最近更新
01
mongodb restore
03-06
02
pytesseract
02-28
03
consul
02-24
更多文章>
Theme by Vdoing | Copyright © 2022-2025 子嘉 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式