如何在 Ubuntu 12.10 上安装 google-mock

Sla*_*zer 6 installation testing programming c++

我很难尝试安装 Google C++ Mocking Framework。我已成功运行sudo apt-get install google-mock. 然后我尝试编译这个示例文件

#include "gmock/gmock.h"
int main(int argc, char** argv) {
  ::testing::InitGoogleMock(&argc, argv);
  return RUN_ALL_TESTS();
}
Run Code Online (Sandbox Code Playgroud)

g++ -lgmock main.cpp这些错误显示

main.cpp:(.text+0x1e): undefined reference to `testing::InitGoogleMock(int*, char**)'
main.cpp:(.text+0x23): undefined reference to `testing::UnitTest::GetInstance()'
main.cpp:(.text+0x2b): undefined reference to `testing::UnitTest::Run()'
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

我猜链接器找不到库文件。有谁知道如何解决这个问题?

Pav*_*vel 7

好的,我现在已经根据从 googlemock 项目网站提供的源代码下载中提供的自述文件构建了我自己的版本,从而成功地开始使用 gmock。

从网站获取下载 zip:http : //code.google.com/p/googlemock/downloads/list

将其解压缩到一个目录,例如${GMOCK_ROOT}. 然后,根据README 说明

cd ${GMOCK_ROOT}
mkdir build
cd build
g++ -I../gtest/include -I../gtest -I../include -I.. -c ../gtest/src/gtest-all.cc
g++ -I../gtest/include -I../gtest -I../include -I.. -c ../src/gmock-all.cc
ar -rv libgmock.a gtest-all.o gmock-all.o
Run Code Online (Sandbox Code Playgroud)

因此,您在${GMOCK_ROOT}/build. 您实际上还需要 pthreads 进行编译,因此之后的编译命令变为:

g++ -I${GMOCK_ROOT}/include/ main.cpp -L${GMOCK_ROOT}/build -lgmock -lpthread
Run Code Online (Sandbox Code Playgroud)


小智 5

libgmock-dev将包含在默认的 Ubuntu 18.10 存储库中,否则在早期的 Ubuntu 版本中您必须手动下载并安装它。

sudo apt-get install libgmock-dev
cd /usr/src/googletest/googlemock/
sudo mkdir build
sudo cmake ..
sudo make
sudo cp googlemock/*.a /usr/lib
Run Code Online (Sandbox Code Playgroud)