linux-如何在没有root用户访问权限的Ubuntu上安装Google Test?
作者:互联网
我正在尝试在没有root访问权限的Ubuntu上根据this answer安装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
我在这里想念什么?
解决方法:
假设您要在/ 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 / googletest或CWD / googletest_build.
您可能希望将其他选项传递给cmake,在这种情况下,构建产品将根据这些其他选项的含义而有所不同.
标签:ubuntu,install,googletest,linux 来源: https://codeday.me/bug/20191026/1939782.html