Debian 不再为 gTest 提供任何预编译的软件包。他们建议您将框架集成到项目的 makefile 中。但我想保持我的 makefile 干净。如何像以前的版本 (<1.6.0) 一样设置 gTest,以便可以链接到库?
最佳答案
在开始之前,请确保您已阅读并理解 this note from Google !本教程使 gtest 的使用变得容易,但可能会引入 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。在系统上“安装”头文件和库。
此步骤可能因发行版而异,因此请确保将 header 和库复制到正确的目录中。我通过检查 Debians former gtest libs 的位置来完成此操作。被定位。但我确信有更好的方法来做到这一点。
sudo cp -a googletest/include/gtest /usr/include
sudo cp -a googlemock/gtest/libgtest_main.so googlemock/gtest/libgtest.so /usr/lib/
# The easiest/best way:
make install # Note: before v1.11 this can be dangerous and is not supported
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
标志。
从这里你可能想去谷歌documentation ,以及 old docs关于框架以了解它是如何工作的。编码愉快!
编辑: 这也适用于 OS X!见 "How to properly setup googleTest on OS X"
关于c++ - 如何在 Linux 上将 googleTest 设置为共享库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13513905/