我正在尝试在没有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
我在这里想念什么?
假设您要在中安装googletest /home/me/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
,在这种情况下,构建产品将根据这些其他选项的含义而有所不同。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句