:在函数‘emock::InvocationMockBuilderGetter emock::mockAPI(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, char const*)’中:
reg_son_log.cpp:(.text+0x4d): emock::InvocationMockBuilderGetter emock::mockAPI(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, char const*) 的多重定义
CMakeFiles/main.dir/main.cpp.o:main.cpp:(.text+0x4d):第一次在此定义
src/libMysrc.a(grammar.cpp.o):在函数‘emock::InvocationMockBuilderGetter emock::mockAPI(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, char const*)’中:
grammar.cpp:(.text+0xf1): emock::InvocationMockBuilderGetter emock::mockAPI(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, char const*) 的多重定义
CMakeFiles/main.dir/main.cpp.o:main.cpp:(.text+0x4d):第一次在此定义
src/libMysrc.a(stonewt.cpp.o):在函数‘emock::InvocationMockBuilderGetter emock::mockAPI(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, char const*)’中:
stonewt.cpp:(.text+0x4d): emock::InvocationMockBuilderGetter emock::mockAPI(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, char const*) 的多重定义
CMakeFiles/main.dir/main.cpp.o:main.cpp:(.text+0x4d):第一次在此定义
抱歉,前些日子出去度假了,今天抽空我看一下,初步看是条件编译的问题。
非常抱歉,之前因为加班和其他原因,文档还未及时补全,导致使用手册缺失。
想麻烦问一下,目前是怎么使用的呢,正确姿势只需包含 emock.hpp 即可。
是这样的,我先在本地编译成功后,得到静态lib,然后把头文件加入include文件夹下,并在CMakeLists中加入该目录,并且一同将静态lib加入lib目录中,进行链接,
.
├── build
│ ├── CMakeCache.txt
│ ├── CMakeFiles
│ ├── cmake_install.cmake
│ ├── compile_commands.json
│ ├── main
│ ├── Makefile
│ └── src
├── CMakeLists.txt
├── CplusDemo.code-workspace
├── include
│ ├── common.h
│ ├── concurrency
│ ├── ctrl.h
│ ├── emock
│ ├── grammar
│ ├── gtest
│ ├── ios
│ ├── json.hpp
│ ├── memory
│ └── stl
├── lib
│ ├── libemock.a
│ └── libgtest.so
├── main.cpp
├── README.md
├── src
│ ├── CMakeLists.txt
│ ├── concurrency
│ ├── grammar
│ ├── ios
│ ├── memory
│ ├── stl
│ └── string
如果是在msvc环境下,实在无法很快解决,也可以考虑在编译选项中添加“/FORCE:MULTIPLE”来强制忽略重复定义的错误哈。