在linux上使用CMake构建和安装gtest

一、准备工作

本机环境:

  • 系统版本:RHEL 7.6
  • GCC/G++版本: 12.1.1
  • googletest版本:1.12.1

注意,gtest的1.12.x分支是支持C++ 11的最后一个分支,后续分支的最低要求是C++ 14.

以我的RHEL 7.6 为例,系统自带的gcc版本是 4.8, 太老了,必须更新gcc的版本才能正常编译。

关于如何在RHEL上安装最新的gcc/g++编译器并实现不同版本的自由切换,请参考我的另一篇博文:
《编译gtest报错‘is_trivially_copy_constructible’ is not a member of ‘std’》

二、构建并安装gtest的静态库

到一个合适的目录中(本文中是/opt/gtest),执行以下操作:

git clone https://github.com/google/googletest.git -b release-1.12.1
cd googletest        # Main directory of the cloned repository.
mkdir build          # Create a directory to hold the build output.
cd build
cmake ..             # Generate native build scripts for GoogleTest.
make
make install         # 注意普通用户需要在前面加sudo,否则会权限不足导致安装失败

可以看到静态库能够成功构建并安装成功,注意默认安装路径是 /usr/local

20230102152724

20230102152957

三、构建并安装gtest的共享库

由于gtest本身比较小巧,所以多数情况下用户为了使用方便,就会直接以静态库的形式对其进行链接,当然了,我们也可以将googletest作为共享库来使用(windows下为dll)。

再次进入build目录, 使用参数 -DBUILD_SHARED_LIBS=ON 进行构建即可:

rm -rf *
cmake -DBUILD_SHARED_LIBS=ON ..
make
make install

20230102153715

查看相关目录可见,此时静态库和共享库已经都有了

20230102153730

猜你喜欢

转载自blog.csdn.net/hubing_hust/article/details/128521495