尝试为英特尔编译器切换MSVC并出现LNK1243错误

时间:2018-06-25 07:57:54

标签: c++ visual-studio static-libraries linker-errors icc

背景

我试图用Intel编译器(版本17.0.1.143 Build 20161005)替换VS2015中当前构建的静态库的编译器。在更正了所有编译错误之后,我开始收到链接时间错误error LNK1243: invalid or corrupt file: COMDAT section 0x2E6 associated with following section 0x0。确切的部分(显示0x2E6)取决于我是否打开或关闭了预编译的头文件,但是错误仍然相同。

我研究过的东西:

Googling the error导致大量结果(总共大约7,其中大约3实际上与链接错误有关)。一个是LLVM中的链接错误,另一个是Microsoft站点,该站点链接到VS2008 documentation,后者链接到描述linking error的页面。第三是英特尔Parallel Studio XE 2016中的link to fixes,应该已经包含在我使用的版本中。

英特尔站点表示已修复

  

/ Qipo导致链接器错误:致命错误LNK1243:无效或损坏的文件:COMDAT部分0x30FE与以下部分0x0相关联

,Microsoft网站将错误描述为

  

链接器检测到损坏的.obj文件。一个节必须与它前面的另一个节关联。

我打开了编译器输出以进行诊断,但是在那里没有发现任何帮助。

问题

什么是导致此错误的原因(以及如何解决原因)?另外,我应该在* .obj文件中寻找什么,以更好地了解正在发生的事情?

0 个答案:

没有答案