Microsoft C库中的重复符号

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

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

这是否是替代版本,链接器应该根据一些标准select一个,还是我误解了PE库格式的语义?

如注释中所引用的,OP没有正确处理COMDAT部分。 http://download.microsoft.com/download/e/b/a/eba1050f-a31d-436b-9281-92cdfeae4b45/pecoff.doc