Linking errors GoogleMock with my C++project under linux(在Linux下将错误GoogleMock与我的C++项目相链接)
问题描述
我想在我的项目中使用GMock。首先,我编译了GMock和GTest。我的操作顺序(我使用Linux):
- Git克隆googlemock和googletest
- 转到git/googletest/googlemock/Build-aux/目录run cmake.. 然后制作
- 我得到的结果是:libgmock.a和libgmock_main.a
My project
的结构为:构建、Inc、src和lib目录。在Build目录中,我运行cmake..并制造出。在Inc目录中,我放置了来自git/googletest/googlemock/include/和git/googletest/googletest/Include/的所有标头。在lib目录中,只放置libgmock.a。在src-我的项目的源代码中。
我的CMakeLists.txt
包含:
project(blockchain)
cmake_minimum_required(VERSION 2.6)
set(CMAKE_INSTALL_PREFIX ${CMAKE_CURRENT_SOURCE_DIR})
file(GLOB CPPS "*.cpp")
include_directories("../inc/")
link_directories("../lib/")
add_definitions(-Wall -O2 -std=c++11)
add_executable(${PROJECT_NAME} ${CPPS})
target_link_libraries(blockchain gmock)
install(TARGETS ${PROJECT_NAME} DESTINATION bin)
当我尝试创建项目(在生成目录中键入cmake .. && make
)时,收到链接错误:
CMakeFiles/lockchain.dir/main.cpp.o:in Function Main‘: Main.cpp:(.ext.start+0x13):未定义的引用 ToTesting::UnitTest::GetInstance()‘ Main.cpp:(.ext.startup+0x1b):未定义对测试的引用::UnitTest::Run()‘../lib/libgmock.a(gmock-all.cc.o):in 函数测试::内部::Scope_PTR
::Reset(std::_cxx11::BASIC_STRIGREAM)[克隆.part.81][克隆.stup.367]‘: Gmock-all.cc:(.text+0x21a):未定义对测试的引用::Internal::IsTrue(Bool)‘../lib/libgmock.a(gmock-all.cc.o):in Functiontesting::internal::MutexBase::AssertHeld()常量[克隆 .stup.368]‘: Gmock-all.cc:(.text+0x274):未定义的测试引用::Internal::IsTrue(Bool)‘gmock-all.cc:(.text+0x2b2):未定义 参考文献 Totesting::internal::GTestLog::GTestLog(testing::internal::GTestLogSeverity, 字符常量,整型)‘ Gmock-all.cc:(.text+0x2fd):未定义对测试的引用::内部::GTestLog::~GTestLog()‘gmock-all.cc:(.text+0x312): 未定义对Testing::Internal::GTestLog::~GTestLog()‘的引用 ../lib/libgmock.a(gmock-all.cc.o):在函数测试中::Internal::Expect(bool,char const*,int, Std::_cxx11::BASIC_STRING, Std::allocator>常量(&;)[克隆.part.51]‘: Gmock-all.cc:(.text+0x910):未定义的引用 ToTesting::Message::Message()‘ Gmock-all.cc:(.Text+0x926):对testing::internal::AssertHelper::AssertHelper(testing::TestPartResult::Type,的引用未定义 Char const*,int,char const*)‘gmock-all.cc:(.text+0x931):未定义 参考文献 Totesting::internal::AssertHelper::operator=(testing::Message常量(&A;) Const‘ Gmock-all.cc:(.Text+0x939):对testing::internal::AssertHelper::~AssertHelper()‘的引用未定义 Gmock-all.cc:(.text+0x94b):未定义的引用 ToTesting::Internal::IsTrue(Bool)‘
和许多其他链接错误。我做错了什么?
推荐答案
gmock
取决于gtest
。您添加了前者,但没有添加后者。
这篇关于在Linux下将错误GoogleMock与我的C++项目相链接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在Linux下将错误GoogleMock与我的C++项目相链接
- 使用 __stdcall & 调用 DLLVS2013 中的 GetProcAddress() 2021-01-01
- 如何提取 __VA_ARGS__? 2022-01-01
- DoEvents 等效于 C++? 2021-01-01
- XML Schema 到 C++ 类 2022-01-01
- 从父 CMakeLists.txt 覆盖 CMake 中的默认选项(...)值 2021-01-01
- 哪个更快:if (bool) 或 if(int)? 2022-01-01
- 将函数的返回值分配给引用 C++? 2022-01-01
- OpenGL 对象的 RAII 包装器 2021-01-01
- GDB 不显示函数名 2022-01-01
- 将 hdc 内容复制到位图 2022-09-04