我正在为Windows PE格式目标文件编写一个链接器,我已经到了可以将Microsoft编译器生成的目标文件链接在一起的阶段,但是当我尝试与libcmt.lib链接时,我得到了一个很多重复的符号。
例如,cosl
由库中的三个不同对象定义。这三个都是指不同地方的定义,而且这三个看起来都是真实的,例如:它们指向名为.text$mn
的文本细分,并具有存储类IMAGE_SYM_CLASS_EXTERNAL
。
这些是备用版本的情况,链接器应该根据某些标准选择一个,还是我误解了PE库格式的语义?
答案 0 :(得分:2)
如评论中所述,OP未正确处理COMDAT部分。 http://download.microsoft.com/download/e/b/a/eba1050f-a31d-436b-9281-92cdfeae4b45/pecoff.doc