Microsoft C 库中的重复符号

问题描述 投票:0回答:1

我正在为 Windows PE 格式的目标文件编写一个链接器,并且已经到了可以将 Microsoft 编译器生成的目标文件链接在一起的阶段,但是当我尝试与 libcmt.lib 链接时,我得到了很多重复的符号。

例如,

cosl
由库中的三个不同对象定义。这三个都指的是不同地方的定义,并且这三个看起来都是真实的,例如它们指向名为
.text$mn
的文本段,并具有存储类
IMAGE_SYM_CLASS_EXTERNAL

这些是备用版本,链接器应该根据某些标准选择一个版本,还是我误解了 PE 库格式的语义?

c windows visual-c++ linker portable-executable
1个回答
2
投票

正如评论中提到的,OP 没有正确处理 COMDAT 部分。 https://download.microsoft.com/download/9/C/5/9C5B2167-8017-4BAE-9FDE-D599BAC8184A/pecoff.docx

© www.soinside.com 2019 - 2024. All rights reserved.