为什么没有安装Google Test的库文件?

libgtest-dev软件包似乎只安装了系统的头文件,而没有安装应该放在/usr/lib下的静态和动态库。
这是一个bug吗?

3既然是故意的,那就不算是一个错误;但是这种情况确实令人困惑。因此,我在https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=802587上提交了一个错误报告。 - Joachim W
嗯... Boost的测试框架是不是“只要用就行”? - Andrew Wagner
谷歌提供的一些原因:https://github.com/google/googletest/issues/2184。 - ks1322
3个回答

这是一个错误吗? 不,这是故意的:
gtest(1.6.0-1ubuntu2)precise; urgency=low
* 停止分发静态库(尽管仍然构建它,以确保gtest能正常工作)。上游建议根本不要分发库,只需提供源代码。(请参见:http://code.google.com/p/googletest/wiki/FAQ) Debian的维护者也计划这样做(请参见 BTS: 639795);现在在Ubuntu中执行以满足MIR要求。

构建静态库

cd /usr/src/gtest sudo cmake . sudo make sudo mv libg* /usr/lib/
编辑:
这些年来,名称有些许变化,但过程仍然相同。在Ubuntu 17.04中:
sudo apt-get install libgtest-dev
cd /usr/src/googletest/googletest
sudo mkdir build
cd build
sudo cmake ..
sudo make
sudo cp libgtest* /usr/lib/
cd ..
sudo rm -rf build

1谢谢!我是按照这种方式构建的库。只是觉得这可能不是一个“官方”的方法来创建一个.deb软件包。 - eddyxu
2谷歌的运作方式真是神奇啊!:) 很高兴能帮到你。 - ish
我宁愿为构建创建一个临时目录,而不是在/usr/src/中放置二进制文件,以免污染。 - Marco Leogrande
2复制并粘贴版本:cd /usr/src/gtest && sudo cmake . && sudo make && sudo mv libg* /usr/lib/ && cd - - exic
3实际上,这里描述的原因可以应用于任何库。例如,如果将boost与libstdc++链接,并且您想使用libc++,则需要从源代码重新编译boost。所以,我认为这很奇怪。 - ruslo
我可以确认它在Ubuntu 14.04上仍然可用。不过,如果有一个安装后的警告提示就更好了。 - thiagowfx
11这真是太荒谬了。他们为什么不把源代码的库一起发货呢?或者至少让安装包自动构建它。 - Fake Name
总体思路还是一样的,但目录名称似乎已经改变了。在17.04版本中,我在/usr/src/googletest/googletest/找到它。 - Stéphane
在新文件夹名为"googletest"或旧文件夹名为"gtest"时,是否需要创建符号链接?sudo ln -s /usr/lib/libgtest.a /usr/local/lib/googletest/libgtest.a sudo ln -s /usr/lib/libgtest_main.a /usr/local/lib/googletest/libgtest_main.a - Paresh471
你有Ubuntu 20.04的更新吗? - eri0o

改进izx的答案,我会这样使用cmake:
sudo cmake -DCMAKE_BUILD_TYPE=RELEASE .

我将尝试进行源外构建:

cd /tmp
mkdir .build
cd .build
cmake -DCMAKE_BUILD_TYPE=RELEASE /usr/src/gtest/
make
sudo mv libg* /usr/lib/

请注意,谷歌推荐的方式是让您现有的项目拉取gtest源代码。
另外,在使用CMake时,您可以使用add_subdirectory命令添加与libgtest-dev一起提供的gtest源代码,因为它默认安装在/usr/src/googletest目录下。
以下方法可行。
add_subdirectory(/usr/src/googletest gtest)
target_link_libraries(your_executable gtest)

推荐不意味着他们自己做。请参阅:https://github.com/google/shaderc - eri0o