一尘不染

如何在Linux上将googleTest设置为共享库

linux

Debian不再为gTest提供任何预编译的软件包。他们建议您将框架集成到项目的makefile中。但是我想保持我的makefile干净。如何像以前的版本(<1.6.0)一样设置gTest,以便可以链接到库?


阅读 310

收藏
2020-06-02

共1个答案

一尘不染

开始之前,请确保您已阅读并理解
Google的注释

1.获取googletest框架

wget https://github.com/google/googletest/archive/release-1.8.0.tar.gz

手工获取。我不会保留这小小的“操作方法”,因此,如果您偶然发现了它,并且链接已过时,请随时对其进行编辑。

2.解压并构建Google测试

tar xf release-1.8.0.tar.gz
cd googletest-release-1.8.0
cmake -DBUILD_SHARED_LIBS=ON .
make

3.在系统上“安装”标题和库。

此步骤可能因发行版而异,因此请确保将标头和库复制到正确的目录中。我通过检查Debians以前的gtest库所在的位置来实现这一点。但我敢肯定,有更好的方法可以做到这一点。注意:make install很危险,不支持

sudo cp -a include/gtest /usr/include
sudo cp -a libgtest_main.so libgtest.so /usr/lib/

4.更新链接器的缓存

…并检查GNU Linker是否知道这些库

sudo ldconfig -v | grep gtest

如果输出如下所示:

libgtest.so.0 -> libgtest.so.0.0.0
libgtest_main.so.0 -> libgtest_main.so.0.0.0

, 一切安好。

gTestframework现在可以使用了。只是不要忘记通过设置-lgtest为链接器标志和(如果没有编写自己的测试主例程的话)显式-lgtest_main标志来选择将项目链接到库。

从这里开始,您可能想要转到Google的文档,以及有关该框架的旧文档,以了解其工作原理。编码愉快!

2020-06-02