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++项目相链接
基础教程推荐
- 什么是T&&(双与号)在 C++11 中是什么意思? 2022-11-04
- 如何在 C++ 中处理或避免堆栈溢出 2022-01-01
- 如何定义双括号/双迭代器运算符,类似于向量的向量? 2022-01-01
- 运算符重载的基本规则和习语是什么? 2022-10-31
- C++ 程序在执行 std::string 分配时总是崩溃 2022-01-01
- C++ 标准:取消引用 NULL 指针以获取引用? 2021-01-01
- 调用std::Package_TASK::Get_Future()时可能出现争用情况 2022-12-17
- 您如何将 CreateThread 用于属于类成员的函数? 2021-01-01
- 设计字符串本地化的最佳方法 2022-01-01
- C++,'if' 表达式中的变量声明 2021-01-01