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++项目相链接


基础教程推荐
- 如何在 C++ 中初始化静态常量成员? 2022-01-01
- 这个宏可以转换成函数吗? 2022-01-01
- 如何通过C程序打开命令提示符Cmd 2022-12-09
- 常量变量在标题中不起作用 2021-01-01
- 我有静态或动态 boost 库吗? 2021-01-01
- 如何检查GTK+3.0中的小部件类型? 2022-11-30
- 在 C++ 中计算滚动/移动平均值 2021-01-01
- 如何将 std::pair 的排序 std::list 转换为 std::map 2022-01-01
- C++结构和函数声明。为什么它不能编译? 2022-11-07
- 静态库、静态链接动态库和动态链接动态库的 .lib 文件里面是什么? 2021-01-01