c – 如何将googleTest设置为Linux上的共享库

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

解决方法

在开始之前确保您已阅读并理解
this note from Google!本教程简单易用,但可能会介绍 nasty bugs.

1.获取googletest框架

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

或者在hand之前得到它.我不会保留这个小方法,所以如果你偶然发现并且链接已经过时,请随时编辑它.

2.解压缩并构建谷歌测试

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

3.“安装”系统上的标头和库.

此步骤可能与发行版到发行版不同,因此请确保将标头和库复制到正确的目录中.我通过检查Debians former gtest libs所在的位置完成了这项工作.但我确信有更好的方法可以做到这一点.注意:make install很危险,不受支持

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

4.更新链接器的缓存

…并检查GNU链接器是否知道库

$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标志.

从这里开始,您可能想要了解有关框架的Googles documentation以了解它的工作原理.快乐的编码!

编辑:
这也适用于OS X!见“How to properly setup googleTest on OS X”

相关文章

首先GDB是类unix系统下一个优秀的调试工具, 当然作为debug代...
1. C语言定义1个数组的时候, 必须同时指定它的长度.例如:int...
C++的auto关键字在C+⬑新标准出来之前基本...
const关键字是用于定义一个不该被改变的对象,它的作用是告诉...
文章浏览阅读315次。之前用C语言编过链表,这几天突然想用C+...
文章浏览阅读219次。碰到问题就要记录下来,防止遗忘吧。文章...