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

1. 是否定义了重复变量:

直观来讲,如果在已经引用的global.h中定义了变量v,那么在本文件之中,就不能再定义一个都是全局的变量。模块编译时虽然能够通过,但在链接过程中就会发现有多个变量,因此报错。解决办法就是修改不必要的重名。

2.链接出错:

就是在链接的时候才报错。

这说明模块内的用法是正确的,但由于未能唯一标示同一变量,导致多次声明。

解决方法(1):在global.h中声明,其他所有引用的地方用extern来声明,该变量引用自外部文件;

解决方法(2):在global.h中将变量修改成static变量,那么全局就只会保存一份。

如何解决linux下编译出现的multiple definition of错误相关推荐

  1. 解决 linux下编译运行.sh文件报错 “[: XXXX: unexpected operator” 问题

    上网查了资料发现,因为Ubuntu默认的sh是连接到dash的,而dash跟bash的不兼容所以出错.既然原因找到,那么就可以把默认连接改成bash即可 $ sudo dpkg-reconfigure ...

  2. 解决Linux下部署使用JasperReport的项目的错误:net.sf.jasperreports.engine.util.JRFontNotFoundException: Font '宋体' i

    CentOS 中部署JasperReport时出错: net.sf.jasperreports.engine.util.JRFontNotFoundException: Font '宋体' is no ...

  3. Linux错误27,解决在linux下编译32程序出现“/usr/include/gnu/stubs.h:7:27: 致命错误:gnu/stubs-32.h:没有那个文件或目录问题”...

    centos64位编译32位代码,出现/usr/include/gnu/stubs.h:7:27: 致命错误:gnu/stubs-32.h:没有那个文件或目录,需要安装32位的glibc库文件. 安装 ...

  4. Linux下编译、链接、加载运行C++ OpenCV的两种方式及常见问题的解决

    Linux下编译.链接.加载运行C++ OpenCV的两种方式及常见问题的解决 在Linux下安装完OpenCV C++之后(还没有安装的读者请参考Ubuntu 18.04 安装OpenCV C++) ...

  5. linux 保存编译log,(转)Linux下编译安装log4cxx

    一个项目的服务器端在Linux平台下,用到了开源日志库log4cxx,这个库是apache项目的一个子库.功能很不错.下面记录下它的编译和安装过程. 第一步安装apr-1.3.8,顺序不能错,它必须首 ...

  6. 一份简单的在 Linux下编译及调试 C 代码的指南

    摘要: 一份简单的在 Linux下编译及调试 C 代码的指南 对于Linux下的C程序员来说,几乎天天都会和Linux打交道.但在很多人的眼中,Linux是一个易用性极差.靠命令驱动的操作系统,根本无 ...

  7. linux下软件编译终止,[2018年最新整理]linux下编译运行程序命令大全.ppt

    [2018年最新整理]linux下编译运行程序命令大全 1. 项目课题引入 2. Vi编辑器的使用方法 3. Linux中C语言程序的编辑 4. Linux中C语言程序的运行 5. 现场演示案例 课题 ...

  8. linux emule 编译 wx-config --libs,linux下编译wxwidgets所写程序所遇到的问题

    记录linux下编译wxwidgets所遇到的问题 1./home/hrd/baohualib/wxWidgets-3.0.2/include/wx/platform.h:184:22: 致命错误: ...

  9. linux下编译wpa_supplicantnbsp;…

    linux下编译wpa_supplicant 收藏 前一段时间只在vs2005下编译成功过.经过近一段时间的琢磨,今天终于在linux下成功编译了wpa_supplicant. 挺简单的事情折腾了这么 ...

最新文章

  1. kubectl技巧之通过go-template截取属性
  2. webzip下载整个网站工具-WebZip
  3. pytorch 学习笔记目录
  4. 自己帮别人写的网站可以公开源码吗_雷军靠写代码赚第一个 100 万,马化腾亲自写腾讯网,码农出身的大佬...
  5. 惠普打印机怎么无线连接电脑_惠普SPECTRE X360 13笔记本电脑怎么样,值得买吗
  6. 红米7正式首发:4GB+64GB版本售价999元
  7. 你造吗?这个属性值你写错了多少年?target=“_blank”
  8. Property Bags Object Model中的小“陷阱”
  9. \sbin\nginx:cannot execute binary file
  10. Ubuntu下备份系统的方法
  11. javah vs javac -h
  12. 破解寝室安装老毛子路由器校园网电信闪讯锐捷认证
  13. 荣耀智慧屏搭载了鸿蒙os吗,荣耀智慧屏尝鲜鸿蒙OS “一招鲜”能否吃遍天
  14. ARM 汇编指令 CPS CPSID CPSIE
  15. 腾讯裁员范围扩大;研究称人类或能喝到月球冰火水;苹果考虑取消京东方3000万块屏幕订单;近视手术无法治愈近视
  16. ACM—数论—费马大定理 (数学史上著名的定理)
  17. IIS部署,发布网站
  18. nodeJS实现简单网页爬虫功能
  19. 为何有好多网站不常用table和iframe这两个元素?
  20. 2014款macbookpro 15-inch 升级硬盘

热门文章

  1. 秒懂文件路径 / 和 ./ 和 ../ 和 ../../
  2. 阿里云的技术创新,不是简单的路线之争
  3. 远程LInux和秘钥认证
  4. System.Convert 的一些事
  5. java-第十章-类和对象-创建管理员对象
  6. POJ 3168 排序+扫描
  7. DDL/DML/DCL/TCL基本概念
  8. 一道企业shell编程实战题-看看谁能快速搞定
  9. How to Prevent the next Heartbleed
  10. PHP spl_autoload_register()函数使用