Man*_*d3r 80 c++ linux installation unit-testing googletest
Debian不再为gTest提供任何预编译的包.他们建议您将框架集成到项目makefile中.但我想保持make文件干净.如何设置gTest像以前的版本(<1.6.0),以便我可以链接aganist库?
Man*_*d3r 133
在开始之前,请确保您已阅读并理解 Google的此说明!本教程简单易用,但可能会引入令人讨厌的错误.
wget https://github.com/google/googletest/archive/release-1.8.0.tar.gz
Run Code Online (Sandbox Code Playgroud)
或者手动拿到它.我不会保留这个小小的方法,所以如果你偶然发现并且链接已经过时,请随时编辑它.
tar xf release-1.8.0.tar.gz
cd googletest-release-1.8.0
cmake -DBUILD_SHARED_LIBS=ON .
make
Run Code Online (Sandbox Code Playgroud)
此步骤可能与发行版到发行版不同,因此请确保将标头和库复制到正确的目录中.我通过检查Debian以前的gtest libs所在的位置来实现这一点.但我确信有更好的方法可以做到这一点.注意:make install很危险,不受支持
$ sudo cp -a include/gtest /usr/include
$ sudo cp -a libgtest_main.so libgtest.so /usr/lib/
Run Code Online (Sandbox Code Playgroud)
...并检查GNU链接器是否知道库
$ sudo ldconfig -v | grep gtest
Run Code Online (Sandbox Code Playgroud)
如果输出如下所示:
libgtest.so.0 -> libgtest.so.0.0.0
libgtest_main.so.0 -> libgtest_main.so.0.0.0
Run Code Online (Sandbox Code Playgroud)
, 一切都好.
gTestframework现在可以使用了.只是不要忘记通过设置-lgtest为链接器标志将项目与库链接,并且如果您没有编写自己的测试主程序,则显示-lgtest_main标记.
从这里开始,您可能想要了解有关框架的Googles 文档,以了解它的工作原理.快乐的编码!
编辑: 这也适用于OS X!请参阅 "如何在OS X上正确设置googleTest"
小智 28
让我专门为ubuntu用户回答这个问题.首先安装gtest开发包.
sudo apt-get install libgtest-dev
Run Code Online (Sandbox Code Playgroud)
请注意,此程序包仅安装源文件.您必须自己编译代码以创建必要的库文件.这些源文件应位于/ usr/src/gtest.浏览到此文件夹并使用cmake编译库:
sudo apt-get install cmake # install cmake
cd /usr/src/gtest
sudo cmake CMakeLists.txt
sudo make
# copy or symlink libgtest.a and libgtest_main.a to your /usr/lib folder
sudo cp *.a /usr/lib
Run Code Online (Sandbox Code Playgroud)
现在要编译使用gtest的程序,你必须将它链接到:
-lgtest -lgtest_main
Run Code Online (Sandbox Code Playgroud)
这对我来说在Ubuntu 14.04LTS上非常适合.
小智 25
我花了一段时间才弄明白,因为正常的"make install"已被删除,我不使用cmake.以下是我分享的经验.在工作中,我没有Linux上的root访问权限,所以我在我的主目录下安装了Google测试框架:~/usr/gtest/.
要在〜/ usr/gtest /中作为共享库安装软件包,以及样本构建:
$ mkdir ~/temp
$ cd ~/temp
$ unzip gtest-1.7.0.zip
$ cd gtest-1.7.0
$ mkdir mybuild
$ cd mybuild
$ cmake -DBUILD_SHARED_LIBS=ON -Dgtest_build_samples=ON -G"Unix Makefiles" ..
$ make
$ cp -r ../include/gtest ~/usr/gtest/include/
$ cp lib*.so ~/usr/gtest/lib
Run Code Online (Sandbox Code Playgroud)
要验证安装,请使用以下test.c作为简单的测试示例:
#include <gtest/gtest.h>
TEST(MathTest, TwoPlusTwoEqualsFour) {
EXPECT_EQ(2 + 2, 4);
}
int main(int argc, char **argv) {
::testing::InitGoogleTest( &argc, argv );
return RUN_ALL_TESTS();
}
Run Code Online (Sandbox Code Playgroud)
编译:
$ export GTEST_HOME=~/usr/gtest
$ export LD_LIBRARY_PATH=$GTEST_HOME/lib:$LD_LIBRARY_PATH
$ g++ -I $GTEST_HOME/include -L $GTEST_HOME/lib -lgtest -lgtest_main -lpthread test.cpp
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
85462 次 |
| 最近记录: |