美文网首页
链接时多重定义怎么办?

链接时多重定义怎么办?

作者: 罗蓁蓁 | 来源:发表于2020-08-03 17:31 被阅读0次

链接时多重定义怎么办?一般解决方案是:只保留一个定义的地方就好了,这对强迫症,很友好!但往往有时又嫌麻烦,或者杂七杂八的的原因导致了,两个定义都保留,但只让链接时,只链接第一个遇到的定义函数!

其实吧,如果这多重定义的函数是存在于不同的库,一般默认都只会找第一个遇到的库里面的函数就好了。

但是,因为,链接的最小单元一般是文件,.o。如果a.o和b.o同时存在test1(),但是a.o有test2(),b.o有test3(),结果这两个接口函数都会被系统使用,那么a.o和b.o就会被同时链接进去*。这就是为何会报多重定义的错误。

为了让这种情况下,链接器还是不报错,还是只会找第一个遇到的库里面的函数。可以使用以下参数:

-Wl,-z,multidefs或者Wl,'-z muldefs',以及--allow-multiple-definition

让ld在遇到重复定义时候,只处理第一个定义。

相关文章

  • 链接时多重定义怎么办?

    链接时多重定义怎么办?一般解决方案是:只保留一个定义的地方就好了,这对强迫症,很友好!但往往有时又嫌麻烦,或者杂七...

  • python学习日记-2016.7.21

    1.多重继承 python的多重继承可以使一个子类得到多个父类的所有功能,定义多重继承很简单,只需要在定义类时在类...

  • 面向对象

    类的定义方法 子类的定义 多重继承 python允许多重继承。

  • 多重定义

    这一秒是我上一秒还是我悲伤是我把悲伤勒进挫骨神经的是我写诗的是我在那些不靠谱的词句上种花的是我比如你也是你有可能你...

  • 多重继承,模块和包

    多重继承 私有属性 模块和包 当调用自己定义的包时,要定义_init_.py,因为在代码中使用import调用模块...

  • 多重耐药菌基础知识

    1.多重耐药菌是如何定义的? 答:多重耐药菌( Multiple Drug Resistant Organism,...

  • Android Deeplink基础使用

    Deeplink定义 deeplink是用于设置一个web链接,将链接嵌入到web页面中,当用户点击外部链接时由浏...

  • 前端教程:链接伪类控制超链接

    定义超链接时,为了提高用户体验,经常需要为超链接指定不同的状态,使得超链接在点击前、点击后和鼠标悬停时的样式不同。...

  • 《万物皆无序》读书笔记

    《万物皆无序》读书笔记    纵览全书,“万物皆无序”的概念初具雏形,以链接取代容器,以多重标签取代单一定义,以混...

  • 2018-08-20html链接到指定位置和新开窗口

    html链接 html链接 标签可以在网页上定义一个链接地址,通过src属性定义跳转的地址,通过title属性定义...

网友评论

      本文标题:链接时多重定义怎么办?

      本文链接:https://www.haomeiwen.com/subject/bxrbrktx.html