Debian 不再为 gTest 提供任何预编译的软件包。他们建议您将框架集成到项目的 makefile 中。但我想保持我的 makefile 干净。如何像以前的版本(<1.6.0)一样设置 gTest,以便可以链接到库?
原文由 ManuelSchneid3r 发布,翻译遵循 CC BY-SA 4.0 许可协议
Debian 不再为 gTest 提供任何预编译的软件包。他们建议您将框架集成到项目的 makefile 中。但我想保持我的 makefile 干净。如何像以前的版本(<1.6.0)一样设置 gTest,以便可以链接到库?
原文由 ManuelSchneid3r 发布,翻译遵循 CC BY-SA 4.0 许可协议
Debian/Ubuntu 更新
Google Mock(包: google-mock
)和 Google Test(包: libgtest-dev
)已合并。新包名为 googletest
。两个旧名称仍可用于向后兼容,现在依赖于新包 googletest
。
因此,要从包存储库中获取库,您可以执行以下操作:
sudo apt-get install googletest -y
cd /usr/src/googletest
sudo mkdir build
cd build
sudo cmake ..
sudo make
sudo cp googlemock/*.a googlemock/gtest/*.a /usr/lib
之后,您可以链接到 -lgmock
(或 -lgmock_main
如果您不使用自定义主方法)和 -lpthread
。至少在我的情况下,这足以使用 Google Test。
如果您想要最新版本的 Google Test,请从 github 下载。之后,步骤类似:
git clone https://github.com/google/googletest
cd googletest
sudo mkdir build
cd build
sudo cmake ..
sudo make
sudo cp lib/*.a /usr/lib
如您所见,创建库的路径已更改。请记住,新路径也可能很快对包存储库有效。
您可以使用 sudo make install
代替手动复制库。它“当前”有效,但请注意它在过去并不总是有效。此外,使用此命令时您无法控制目标位置,并且您可能不想污染 /usr/lib
。
原文由 stackprotector 发布,翻译遵循 CC BY-SA 4.0 许可协议
7 回答5.3k 阅读
3 回答2k 阅读✓ 已解决
4 回答4k 阅读
2 回答3.9k 阅读✓ 已解决
2 回答5.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
在开始之前,请确保您已阅读并理解 Google 的此说明!本教程使 gtest 的使用变得容易,但可能会引入 令人讨厌的错误。
1.获取googletest框架
或者 手拿。我不会维护这个小操作指南,所以如果你偶然发现它并且链接已经过时,请随时编辑它。
2. 解压构建google test
3. 在您的系统上“安装”头文件和库。
此步骤可能因发行版而异,因此请确保将标头和库复制到正确的目录中。我通过检查 Debian 以前的 gtest 库 的位置来实现这一点。但我确信有更好的方法来做到这一点。
4.更新链接器的缓存
…并检查 GNU 链接器是否知道库
如果输出如下所示:
那么一切都很好。
gTestframework 现在可以使用了。只是不要忘记通过将
-lgtest
设置为链接器标志来将您的项目与库链接,如果您没有编写自己的测试主程序,则可以选择显式-lgtest_main
标志。从这里开始,您可能想访问 Google 的 文档,以及有关该框架的 旧文档,以了解它是如何工作的。快乐编码!
编辑: 这也适用于 OS X!请参阅 “如何在 OS X 上正确设置 googleTest”