如何在没有root访问权限的情况下在Ubuntu上安装Google Test?

时间:2016-07-15 12:20:01

标签: linux ubuntu install googletest

我正在尝试根据this answer在Ubuntu上安装Google Test而无需root权限,因为我需要在工作中学习并使用它。

管理以在我自己的用户文件夹中完成这些操作:

$ 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

似乎我已经在/ usr / src / gtest中有了gtest,尽管我不想使用它,因为安装它并不是我,我不确定它的版本,也不确定它的可用性。甚至无法在未经许可的情况下删除它。

指令结束为:

$ cp -r ../include/gtest ~/usr/gtest/include/
$ cp lib*.so ~/usr/gtest/lib

我在这里缺少什么?

1 个答案:

答案 0 :(得分:4)

假设您要在/home/me/googletest中安装googletest。

浏览googletest GitHub repo https://github.com/google/googletest。 (不要使用您可能在其他地方使用过的可能的日期版本。)

使用克隆或下载链接,克隆或下载并解压缩 您当前目录./googletest下的来源(比方说)CWDCWD不是/home/me/)。

然后在CWD: -

$ mkdir googletest_build
$ cd googletest_build
$ cmake -DCMAKE_INSTALL_PREFIX:PATH=/home/me/googletest ../googletest
$ make
$ make install

在此之后,你会发现: -

/home/me/googletest/
                lib/
                    libgmock.a
                    libgmock_main.a
                    libgtest.a
                    libgtest_main.a
                include/
                        gmock/
                            # gmock header files
                        gtest/
                            # gtest header files

然后,您可以在源代码中使用gtest / gmock标头,如:

#include <gtest/gtest.h>
#include <gmock/gmock.h>

编译并链接gtest / gmock程序,如:

g++ -pthread -I/home/me/googletest/include -c -o my-unit-tester.o my-unit-tester.cpp
g++ -o my-unit-tester my-unit-tester.o -L/home/me/googletest/lib -lgtest -lgmock -pthread

使用-I...选项告诉编译器gtest / gmock头部所在的位置和 使用-L...选项告诉链接器gtest / gmock库所在的位置。

-pthread传递给编译器和链接器,因为gtest / gmock库是 默认情况下构建多线程。

安装完成后,您不再需要CWD/googletestCWD/googletest_build

您可能希望将其他选项传递给cmake,在这种情况下,构建产品将根据这些附加选项的含义而有所不同。