【问题标题】:How to install Google Test on Ubuntu without root access?如何在没有 root 访问权限的情况下在 Ubuntu 上安装 Google Test?
【发布时间】:2016-11-18 15:45:26
【问题描述】:

我正在尝试根据this answer 在没有 root 访问权限的 Ubuntu 上安装 Google Test,因为我需要在工作中学习和使用它。

设法在我自己的用户文件夹中完成这些工作:

$ 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

我在这里错过了什么?

【问题讨论】:

标签: linux ubuntu installation googletest


【解决方案1】:

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

浏览到 googletest GitHub 存储库 https://github.com/google/googletest。 (不要使用在其他地方可能已经过时的版本。)

使用克隆或下载链接,克隆或下载并解压 源为(假设)./googletest 在您当前目录下的CWD(其中CWD 不是/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,在这种情况下,构建产品将根据这些附加选项的含义而有所不同。

【讨论】:

  • 明天一定会试试的,谢谢先生的解释。
  • 在 make install 命令之后,我得到了:make: *** No rule to make target `install'。停下来。 这是什么意思?我的家/我/googletest 一直是空的。
  • 您是否从github.com/google/googletest 获得并使用了最新的googletest master 源代码?
  • 我没有使用主文件夹,只是最新版本,1.7.0。我想我在那里误解了你。但是从那以后继续阅读,我发现这条评论说我应该避免使用 make install 命令:stackoverflow.com/a/13513907/6560773 我现在有点困惑。
  • @MattSom gtest-1.7.0 是 3 + 1/2 岁,你读过的另一个 SO 答案也是如此。两者都过时了。我清楚地记得 gtest-1.7.0 不支持 make install。现在支持它。按照我的回答中的步骤,删除所有 gtest-1.7.0 材料并从头开始。
猜你喜欢
  • 2013-05-29
  • 1970-01-01
  • 1970-01-01
  • 2011-11-19
  • 2013-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多