总结了解决multiple definition of 的方法:

问题原因:
    当多个文件包含同一个头文件时,并且你的.H里面没有加上条件编译
#ifndef TEST_H
#define TEST_H
#endif
就会独立的解释,然后生成每个文件生成独立的标示符。在编译器连接时,就会将工程中所有的符号整合在一起,由于,文件中有重名变量,于是就出现了重复定义的错误。

方法1:
    给每一个头文件加上条件编译,避免该文件被多次引用时被多次解释,这是个应该是习惯。这个方法会解决大部分低级问题。

方法2:
    当方法1无效时,可以把所有的全局变量放入一个头文件 global.h (名字随意起,但要加条件编译)中,每一个变量前面加extern,声明一下这些变量将在其它文件中定义。 然后建立一个和头文件名字对应的.c or .cpp文件 如global.c。在里面声明所有的全局变量。例如:void(*Handl_Display)();
然后,让涉及到全局变量的文件include ”global.h“。这样编译时,会先对global.c编译生成一个global.o ,然后再和其它文件的.o链接生成可执行文件。

方法3:
    懒人方法,在所有的全局变量前加上static ,声明成静止变量。也能解决问题。
     所有的方法都是网来的,O(∩_∩)O哈哈~
     谢谢所有的提供方法的哥们~

解决 multiple definition of相关推荐

  1. (转)解决multiple definition of的方法

    (转)解决multiple definition of的方法 参考文章: (1)(转)解决multiple definition of的方法 (2)https://www.cnblogs.com/sa ...

  2. 解决multiple definition of的方法

    因为最近编写的一个程序,工程量比较大. 只是子文件就10+多个了,所以,将一些全局变量全部声明在了自己定义的shao.h头文件中了. 今天又增加了一个解算模型的子函数,在编译的时候就报了multipl ...

  3. 【转】解决多文件编译中连接错误 multiple definition of*****

    总结了解决multiple definition of的方法: 问题原因:     当多个文件包含同一个头文件时,并且你的.H里面没有加上条件编译 #ifndef TEST_H #define TES ...

  4. multiple definition of...

    在linux下编译工程的一个模块文件是出现了n多multiple definition of...(函数名)的错误 解决方法如下: 1.为每个文件添加条件编译 #ifndef _文件名_H_ #def ...

  5. 如何解决linux下编译出现的multiple definition of错误

    今天,在编译quagga的过程中出现了multiple definition of的错误.该错误表示不同文件对同一变量进行了重复定义.因此,可以从以下几个方面来排查这个问题: 1. 是否定义了重复变量 ...

  6. 解决C++中multiple definition of问题

    1.global.h #ifndef _GLOBAL_H #define _FACEDETECT_Hstruct People{string name;int age;}p_info; #endif2 ...

  7. Linux Mint 21编译Android kernel,遇到 multiple definition of `yylloc‘ 的错误解决

    由于gcc和g++版本的更新,在编译之前的Android内核会出现各种各样的问题,本文就multiple definition of `yylloc' 问题解决给出解决方案 本文环境如下: OS: L ...

  8. multiple definition of

    参考:http://blog.csdn.net/quyang0602/article/details/7620078 在今天编写编译器过程中遇到了multiple definition of 的问题, ...

  9. Android之jni编译出现multiple definition of ‘××××ב

    1.问题 编译ndk代码的时候提示 multiple definition of '×××××' 2.原因 多个文件包含同一个头文件时,在Android.mk文件里面写了2个文件 ×××_src_fi ...

最新文章

  1. 利用nginx泛域名解析配置二级域名和多域名
  2. 边缘计算网关linux开发,边缘计算网关(BMG800系列)二次开发指导手册
  3. Winform中实现ZedGraph不显示y=0这条刻度线
  4. MyBatisPlus条件构造器带条件查询selectList使用
  5. 谈谈对python 和其他语言的区别_谈谈Python和其他语言的区别
  6. 2020,AI算法岗,劝退还是继续?
  7. 工作流中ServiceTask的各种方法
  8. 人生重开模拟器微信小程序源码
  9. ZooKeeper(五) 使用Zookeeper有序临时节点实现分布式锁
  10. TreeView 节点多选,对TreeView的遍历
  11. 【图像隐写】基于matlab GUI DWT与SVD数字水印 【含Matlab源码 253期】
  12. Elasticsearch学习--elasticsearch介绍与安装
  13. 20道你必须要背会的微服务面试题,面试一定会被问到
  14. 基于Zynq7000平台VxWorks6.9开发应用——FPGA动态加载篇
  15. 5.ViewPage2使用及坑点解决
  16. 计算机硬盘容量分配,电脑磁盘分区容量大小怎么调整
  17. aws ssh 证书配置_在AWS Lambda中运行netflix bless ssh证书颁发机构
  18. 北邮计算机基础题目,北邮网络教育学院计算机基础题目.doc
  19. Linux下 timerfd创建定时器并使用 epoll 监听
  20. vue高德地图marker批量标记与InfoWindow提示框

热门文章

  1. (2016/02/19)多传感器数据融合算法---9轴惯性传感器
  2. python利用ffmpeg进行rtmp推流直播
  3. Java——io项目(快递分拣系统)
  4. 数据显示强生新冠疫苗对德尔塔变异病毒有效;康方生物派安普利提交第三个上市申请 | 医药健闻...
  5. 北漂生活第十八弹-日子还照旧
  6. html 图片自动滚动播放,CSS3如何实现图片滚动播放效果(附代码)_WEB前端开发...
  7. mysql vchar 磁盘碎片_mysql TEXT与BLOB 碎片整理
  8. 20200422his系统实施工程师经验分享(助产士系统实施过程总结)
  9. 逍遥模拟器的安装和使用
  10. Stimulsoft 报表工具单元格内换行