为什么没有为谷歌测试安装库文件?

edd*_*yxu 57 shared-library application-development

libgtest-dev 包似乎只安装头文件到系统,而不是应该安装在 /usr/lib 下的静态和动态库。

这是一个错误吗?

ish*_*ish 70

这是一个错误吗?

不,这是故意的:

gtest (1.6.0-1ubuntu2) 精确;紧迫性=低

  * 停止分发静态库(尽管仍在构建它,以确保 gtest
    作品)。上游建议完全不要运送库,只是
    来源。(参见:http://code.google.com/p/googletest/wiki/FAQ)
    Debian 维护者也计划这样做(参见 BTS:639795);这样做
    Ubuntu 现在满足 MIR 要求。

构建静态库

cd /usr/src/gtest
须藤 cmake 。
须藤制作
须藤 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
Run Code Online (Sandbox Code Playgroud)

  • 这该死的愚蠢。他们为什么不为源代码提供库?或者至少让包安装自动构建它。 (11认同)
  • 实际上[此处]描述的原因(http://code.google.com/p/googletest/wiki/FAQ#Why_is_it_not_recommended_to_install_a_pre-compiled_copy_of_Goog)可以应用于**任何**库。例如,如果 boost 与 libstdc++ 链接,并且您想使用 libc++,则需要从源代码重新编译 boost。所以很奇怪,恕我直言 (3认同)
  • 谷歌以神秘的方式运作!:) 很高兴有帮助。 (2认同)
  • 复制粘贴版本:`cd /usr/src/gtest && sudo cmake 。&& sudo make && sudo mv libg* /usr/lib/ && cd -` (2认同)

小智 23

改进 izx 的答案,我会以这种方式使用 cmake:

sudo cmake -DCMAKE_BUILD_TYPE=RELEASE .
Run Code Online (Sandbox Code Playgroud)

我会尝试外源构建:

cd /tmp
mkdir .build
cd .build
cmake -DCMAKE_BUILD_TYPE=RELEASE /usr/src/gtest/
make
sudo mv libg* /usr/lib/
Run Code Online (Sandbox Code Playgroud)