为什么没有安装用于Google测试的库文件?


54

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

是虫子吗?


2
既然是故意的,那不是一个bug。但是情况完全令人困惑。因此,我在bugs.debian.org/cgi-bin/bugreport.cgi?bug=802587提交了错误报告。
Joachim W

恩... Boost的测试框架“正常工作”吗?
安德鲁·瓦格纳

Answers:


70

是虫子吗?

不,这是故意的:

gtest(1.6.0-1ubuntu2)精确;紧急程度=低

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

建立静态库

光盘/ usr / src / gtest
须藤cmake。
须藤制作
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

谢谢!我以这种方式构建了库。只是认为这可能不是.deb软件包的官方方法。
eddyxu 2012年

1
Google以神秘的方式运作!:)很高兴它有所帮助。
ish 2012年

2
复制粘贴版本:cd /usr/src/gtest && sudo cmake . && sudo make && sudo mv libg* /usr/lib/ && cd -
2013年

2
实际上,这里描述的原因可以应用于任何库。例如,如果boost与libstdc ++链接,而您想使用libc ++,则需要从源代码重新编译boost。恕我直言,这很奇怪
ruslo

7
这真是令人震惊。他们为什么不为来源运送图书馆?或者至少让软件包安装程序自动构建它。
假名称

23

改善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/

0

请注意,Google 推荐的方法是让您现有的项目加入gtest源代码。

另外,当与CMake一起使用时,您可以使用add_subdirectory添加附带的gtest源代码,libgtest-dev因为默认情况下它进入/usr/src/googletest

以下将工作

add_subdirectory(/usr/src/googletest gtest)
target_link_libraries(your_executable gtest)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.