C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了对象符号覆盖库符号?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
当您在两个不同的C源文件中定义相同的函数(非静态),编译它们并将它们与Microsoft链接链接时,您会收到重复的符号错误消息,如预期的那样.

另一方面,当您定义一个与标准库函数名称匹配的函数时,例如cos(未定义为COMDAT)则没有错误;您的定义将以静@L_674_10@方式覆盖标准库定义.这也是理想的行为,但我试图找出确切的规则是什么.

规则’在目标文件中定义的符号是否覆盖在库文件中定义的符号’或其他内容?我在PE规范中找不到任何提及,但也许我忽略了一些东西.

解决方法

MS链接器仅链接解析依赖关系所需的静态库中的那些成员对象.来自静态库的未使用的成员对象被优化掉.因此,如果静态库成员对象中有重复的符号,但不需要成员对象,则不会出现错误.也可以看看:
http://msdn.microsoft.com/en-us/library/72zdcz6f.aspx

似乎MS链接器也支持某种弱符号:
http://support.microsoft.com/kb/148652/EN-US
http://nikoniko-programming.blogspot.ch/2010/09/aliasing-symbol-names-during-link-time.html

但我在MSDN中找不到这个.

大佬总结

以上是大佬教程为你收集整理的对象符号覆盖库符号?全部内容,希望文章能够帮你解决对象符号覆盖库符号?所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。