问题描述:有一个opt_process.h文件,两个.cc文件都引用了这个.h文件,在.h文件中声明了一些全局变量,报错
/tmp/ccBCSKoH.o:(.bss+0x0): multiple definition of longopts'
/tmp/ccZP3F8G.o:(.bss+0x0): first defined here
/tmp/ccBCSKoH.o:(.bss+0xc0): multiple definition of
input_opts’
/tmp/ccZP3F8G.o:(.bss+0xc0): first defined here
/tmp/ccBCSKoH.o:(.bss+0x100): multiple definition of inout_opts'
/tmp/ccZP3F8G.o:(.bss+0x100): first defined here
/tmp/ccBCSKoH.o:(.bss+0x140): multiple definition of
output_opts’
/tmp/ccZP3F8G.o:(.bss+0x140): first defined here
collect2: error: ld returned 1 exit status
原因:好像是由于多次包含,然后编译.cc文件是重复 定义了。
解决方法:

  1. 使用extern关键字,即变量在.c文件中声明,在.h中用extern标志即可;
  2. 用#ifndef+#define+#endif
  3. 如果全局变量是常量,使用const标志该常量(C++中),因为const常量在便宜期已经确定,无需编译,自然也没有重复定义的问题了。

1,2方法网上都有, 3方法自己实测有用,不足之处多多指教。

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

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

  5. 问题记录:multiple definition of `xxxx` 问题解决 struct定义类的error:“unknown type name“

    一.multiple definition of xxxx 问题解决 问题背景 我在一个头文件里面定义了一个变量,并赋予初值,然后再两个.c 文件里引入了这个头文件,结果就报错 multiple de ...

  6. multiple definition of `xxxx`问题解决及其原理

    人有的时候就是这样,稍微知道点知识就觉着自己什么都会,就浮躁了,实际只是一瓶子不满半瓶子晃荡的状态,今天就写点基础的东西,也是当前遇到的,以前改改就过去了,没有深究其原因,今天就给它所清楚了,也算弥补 ...

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

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

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

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

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

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

最新文章

  1. 降低预测过程计算成本,这些NLP模型压缩方法要知道
  2. iOS进阶之底层原理-消息机制
  3. Python+opencv 图像拼接
  4. python3最新版本-mac下安装Python3.*(最新版本)
  5. 随机验证码 php
  6. HTML5各种标签总结(HTML、head)
  7. 我眼中的移动互联网(多原创视频)
  8. AudioBufferSourceNode
  9. python selenium 点击 报错v_python菜鸟初学selenium+chromedrive,简单点击出错,请指教...
  10. Flutter拓展 在Android studio中导入Flutter项目报错
  11. rdkitpython | 多个化合物中挑选最大片段
  12. mysql中dint,请教一下Dint和Real型变量在使用过程中出现的问题
  13. C#实现笔记本摄像头调用、拍照 USB摄像头
  14. mac mini 开发android,Mac mini M1上成功启动Ubuntu
  15. 春晚郎朗宋祖英不合作 本山欲请张艺谋导演小品
  16. 使用Visio来画图配置
  17. (翻译)Understanding Convolutional Neural Networks for NLP
  18. [MySQL]什么是视图以及视图的作用
  19. Python安装库的常用方法
  20. 营改增后计算机维修费税率,2020国税维修费税率是多少?

热门文章

  1. ESG评级是什么意思呢?
  2. springboot学习网址汇总
  3. 用于光流估计的无监督深度学习DSTFlow
  4. vue指令-v-for
  5. 运算符、数据类型、序列类型
  6. 8001正红背绿冠号收集和探讨
  7. 一个Spring Bean从诞生到逝去的九次人生转折!
  8. SMETA验厂辅导,用工场所须在审核前提供最新和精确的预审核和自我评估信息
  9. 数据流图 系统流程图 程序流程图 程序的系统结构图之间的区别和联系
  10. 机器学习教程 之 K-means聚类:简单有效的聚类方法