COMDAT 部分的用途是什么?

2023-12-28

我看到 /Gy 选项,想知道为什么要使用它?http://msdn.microsoft.com/en-us/library/xsa71f43.aspx http://msdn.microsoft.com/en-us/library/xsa71f43.aspx


COMDAT 节的目的是允许在多个目标文件中定义“重复”节。通常,如果在多个目标文件中定义了相同的符号,链接器将报告错误。这可能会导致某些 C++ 语言功能(例如模板)出现问题,这些功能可能会在不同的 cpp 文件中实例化相同的符号。

COMDAT 部分用于解决这个问题。当目标文件中的某个节被标记为 COMDAT 时,它还会指定一个标志,指示应如何解决冲突。有很多选项,包括“只选择您喜欢的任何人”,“确保所有重复项大小相同”,“确保所有重复项具有相同内容”,“选择最大的一个”等。请参阅完整列表的 COFF 规范。

无论如何,与其他答案所说的不同,对于 COMDAT 部分的内容必须是什么,没有任何要求。它们可以包含一个过程、多个过程、数据或代码和数据的任意组合。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

COMDAT 部分的用途是什么? 的相关文章

随机推荐