multiple definition of的问题
2021/9/26 6:11:01
本文主要是介绍multiple definition of的问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
今天写代码遇到一个重定义的问题,我的代码目录如下
├── store_node │ ├── CMakeLists.txt │ ├── config │ │ └── config.ini │ ├── init │ │ ├── statusdb.cpp │ │ └── statusdb.h │ ├── main.cpp │ │ │ └── utils ├── CMakeLists.txt ├── encode │ ├── encode.cpp │ └── encode.h
我的encode.h
的内容如下:
#ifndef __ENCODE_H__ #define __ENCODE_H__ #include <cstdint> namespace glib{ // void EncodeInt2CharArray(char* dst,uint32_t num); inline void EncodeInt2CharArray(char* dst,uint32_t num){ for(int i=0;i<4;++i){ *(dst++)=0xFF# num>>=8; } } uint32_t DecodeCharArray2Int(char* src){ uint32_t res=0; for(int i=0;i<4;++i){ int step=8; res=res | (*(src+i)&0xFF)<<step*i; } return res; } } #endif
然后在main.cpp
和status.cpp
中同时include "encode.h"
就会报函数DecodeCharArray2Int
重定义的错误。
第一个函数没有报错是因为我加了inline
,把他变成了内联函数,另一种解决方式是在头文件里面只保留函数声明,而将函数定义也就是函数体放到源文件encode.cpp
中。
所以这是什么原因啊?
这篇关于multiple definition of的问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-30PS网页切图项目实战:初学者必备指南
- 2024-09-30Span标签项目实战:新手入门教程
- 2024-09-309D资料入门指南:轻松掌握基础操作
- 2024-09-30如何获取和利用变形资料:新手入门指南
- 2024-09-30弹性盒子布局资料:新手必读教程
- 2024-09-30手把手教你如何使用“点击加载资料”功能
- 2024-09-30封装资料入门教程:轻松掌握封装资料的方法与技巧
- 2024-09-30钢琴效果资料:新手入门指南
- 2024-09-30滚动吸顶资料详解:轻松掌握网页常见布局技巧
- 2024-09-30后台交互资料详解:新手入门教程