GNU ld:弱声明压倒强声明

GNU ld:弱声明压倒强声明,第1张

概述我正在编写一个裸机应用程序,并且遇到了一个我认为与链接器有关的问题. 问题: IRQ处理程序未从提供的静态库链接.使用__attribute __((弱,别名(“defaultInterrupt”)))在库外声明IRQ.提供此属性时,IRQ未链接.删除该属性后,IRQ将被链接. 这篇文章:Linking with static library not equivalent to linking w 我正在编写一个裸机应用程序,并且遇到了一个我认为与链接器有关的问题.

问题:

IRQ处理程序未从提供的静态库链接.使用__attribute __((弱,别名(“defaultInterrupt”)))在库外声明IRQ.提供此属性时,IRQ未链接.删除该属性后,IRQ将被链接.

这篇文章:Linking with static library not equivalent to linking with its objects表明问题可能是链接器没有找到强声明,因为它停止搜索,但没有建议修复.

题:

有没有办法确保链接器找到强声明的函数?

环境:

我正在使用ARM发布的arm-none-eabi-ld,在这里找到:arm-none-eabi

已经尝试过:

重新排序传递给链接器的库

解决方法 很久以前,类似的问题在一个不太遥远的星系中被问到: Override weak symbols in static library

TL;博士;
需要注意的是,weak属性不适用于静态归档库中的预期.链接器在第一次遇到目标符号名称时停止搜索. author of the accepted answer解释说弱点可能只对共享对象有意义.

总结

以上是内存溢出为你收集整理的GNU ld:弱声明压倒强声明全部内容,希望文章能够帮你解决GNU ld:弱声明压倒强声明所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1228215.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存