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

推荐答案

在你开始之前,确保你已经阅读并理解了

1.获取谷歌测试框架

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.在系统上"安装"头文件和库文件.

这一步可能因发行版而异,因此请确保将标题和lib复制到正确的目录中.我通过判断Debians former gtest libs个的位置来实现这一点.但我相信有更好的方法.注意:make install是危险的,不受支持

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

4.更新链接器的缓存

... 并判断GNU链接器是否知道LIB

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设置为链接器标志,如果您没有编写自己的测试mainroutine,还可以 Select 使用显式-lgtest_main标志,将您的项目链接到库中.

从这里开始,你可能会想go 谷歌documentation,以及关于框架的old docs,了解它是如何工作的.编码快乐!

101

Linux相关问答推荐

eBPF:仅使用系统调用加载 eBPF 程序并将其附加到 sys_enter_execve

在 Bash 中使用 shell 脚本从文件中解析版本号

记录终端输入和输出的 Bash 脚本

x64 NASM 汇编程序在程序开始时显示分段错误

使用来自 yocto build 而不是主机系统的 protoc

inotifywait 可以说文件在另一个进程可以访问之前已关闭吗?

如何更改文件的上次访问/修改/更改日期?

如何使用 Bash 将随机数据块写入文件

仅显示 tcsh 或 bash 中作为符号链接的文件和文件夹

如何在 Linux 上使用 Python 判断进程是否仍在运行?

RealUID,保存的 UID,有效的 UID.这是怎么回事?

适用于 Linux 和 Mac 的 HTTP 调试代理

哪个程序在给定任何文件的情况下创建一个 C 数组?

什么是最有效的不区分大小写的 grep 用法?

我如何从 Ubuntu 上的源代码自己构建 python?

docker compose:加载共享库时出错:libz.so.1:无法从共享对象映射段:不允许操作

初学者如何在 Linux 中开始使用 Mono?

在Linux中使用空格设置环境变量

网络共享文件夹上的 GIT 存储库中的并发性

CentOS:在 PHP 安装中启用 GD 支持