在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
。您添加了前者,但没有添加后者。
相关文章