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)
我猜链接器找不到库文件。有谁知道如何解决这个问题?
好的,我现在已经根据从 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)
| 归档时间: |
|
| 查看次数: |
29593 次 |
| 最近记录: |