如何在没有 root 权限的情况下在 Ubuntu 上安装 Google Test?
How to install Google Test on Ubuntu without root access?
我正在尝试根据 this answer 在 Ubuntu 上安装 Google 测试,但没有 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
我在这里错过了什么?
假设您想在 /home/me/googletest
中安装 googletest。
浏览到 googletest GitHub 存储库 https://github.com/google/googletest
。 (不要使用您可能在其他地方获得的可能 -out-of-date 版本。)
使用克隆或下载 link,克隆或download-and-extract
来源为(假设)./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 headers,例如:
#include <gtest/gtest.h>
#include <gmock/gmock.h>
并编译 link 一个 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 headers 驻留和
使用 -L...
选项告诉 linker gtest/gmock 库所在的位置。
将 -pthread
传递给编译器和 linker 因为 gtest/gmock 库是
默认内置 multi-threading。
安装后您不再需要 CWD/googletest
或 CWD/googletest_build
。
您可能希望将附加选项传递给 cmake
,在这种情况下,构建产品将根据这些附加选项的含义而有所不同。
我正在尝试根据 this answer 在 Ubuntu 上安装 Google 测试,但没有 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
我在这里错过了什么?
假设您想在 /home/me/googletest
中安装 googletest。
浏览到 googletest GitHub 存储库 https://github.com/google/googletest
。 (不要使用您可能在其他地方获得的可能 -out-of-date 版本。)
使用克隆或下载 link,克隆或download-and-extract
来源为(假设)./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 headers,例如:
#include <gtest/gtest.h>
#include <gmock/gmock.h>
并编译 link 一个 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 headers 驻留和
使用 -L...
选项告诉 linker gtest/gmock 库所在的位置。
将 -pthread
传递给编译器和 linker 因为 gtest/gmock 库是
默认内置 multi-threading。
安装后您不再需要 CWD/googletest
或 CWD/googletest_build
。
您可能希望将附加选项传递给 cmake
,在这种情况下,构建产品将根据这些附加选项的含义而有所不同。