系统相关
首页 > 系统相关> > linux-如何在没有root用户访问权限的Ubuntu上安装Google Test?

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