Mat*_*Som 4 linux installation ubuntu googletest
我正在尝试根据这个答案在没有 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
Run Code Online (Sandbox Code Playgroud)
似乎我已经在 /usr/src/gtest 中安装了 gtest 虽然我不想使用它,因为不是我安装了它,我不确定它的版本,也不确定它的可用性。未经许可甚至不能删除它。
仍然指令结束为:
$ cp -r ../include/gtest ~/usr/gtest/include/
$ cp lib*.so ~/usr/gtest/lib
Run Code Online (Sandbox Code Playgroud)
我在这里缺少什么?
假设您想在/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
Run Code Online (Sandbox Code Playgroud)
在此之后,您会发现:-
/home/me/googletest/
lib/
libgmock.a
libgmock_main.a
libgtest.a
libgtest_main.a
include/
gmock/
# gmock header files
gtest/
# gtest header files
Run Code Online (Sandbox Code Playgroud)
然后,您可以在源代码中使用 gtest/gmock 标头,例如:
#include <gtest/gtest.h>
#include <gmock/gmock.h>
Run Code Online (Sandbox Code Playgroud)
并编译和链接一个 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
Run Code Online (Sandbox Code Playgroud)
使用该-I...选项告诉编译器 gtest/gmock 头文件所在的位置,并使用该-L...选项告诉链接器 gtest/gmock 库所在的位置。
传递-pthread给编译器和链接器,因为 gtest/gmock 库默认是多线程构建的。
安装后,您不再需要CWD/googletest或CWD/googletest_build。
您可能希望将附加选项传递给cmake,在这种情况下,构建产品将根据这些附加选项的含义而有所不同。
| 归档时间: |
|
| 查看次数: |
5132 次 |
| 最近记录: |