在linux上使用CMake构建和安装gtest
- 一、准备工作
- 二、构建并安装gtest的静态库
- 三、构建并安装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
三、构建并安装gtest的共享库
由于gtest本身比较小巧,所以多数情况下用户为了使用方便,就会直接以静态库的形式对其进行链接,当然了,我们也可以将googletest作为共享库来使用(windows下为dll)。
再次进入build目录, 使用参数 -DBUILD_SHARED_LIBS=ON 进行构建即可:
rm -rf *
cmake -DBUILD_SHARED_LIBS=ON ..
make
make install
查看相关目录可见,此时静态库和共享库已经都有了