C++ 尝试为英特尔编译器切换MSVC并获取LNK1243错误 背景

C++ 尝试为英特尔编译器切换MSVC并获取LNK1243错误 背景,c++,visual-studio,static-libraries,linker-errors,icc,C++,Visual Studio,Static Libraries,Linker Errors,Icc,我正在尝试用英特尔编译器(版本17.0.1.143 Build 20161005)替换当前在VS2015中构建的静态库的编译器。在纠正任何编译错误后,我开始接收链接时错误错误LNK1243:无效或损坏的文件:COMDAT节0x2E6与下面的节0x0相关。确切的部分(0x2E6显示)取决于是否打开或关闭了预编译头,但错误保持不变 我所研究的: 导致过多的结果(总共约7个,其中约3个与链接错误有关)。一个是中的链接错误,另一个是链接到VS2008的Microsoft站点,该站点链接到一个描述该错误的

我正在尝试用英特尔编译器(版本17.0.1.143 Build 20161005)替换当前在VS2015中构建的静态库的编译器。在纠正任何编译错误后,我开始接收链接时错误
错误LNK1243:无效或损坏的文件:COMDAT节0x2E6与下面的节0x0相关
。确切的部分(
0x2E6
显示)取决于是否打开或关闭了预编译头,但错误保持不变

我所研究的: 导致过多的结果(总共约7个,其中约3个与链接错误有关)。一个是中的链接错误,另一个是链接到VS2008的Microsoft站点,该站点链接到一个描述该错误的页面。第三个版本是Intel Parallel Studio XE 2016中的一个版本,我正在使用的版本中应该包含这些版本

英特尔网站说它修复了

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

Microsoft站点将错误描述为

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

我将编译器输出调到diagnostic,但没有看到任何有用的内容

问题:
是什么原因导致此错误(以及如何修复原因)?或者,我应该在*.obj文件中查找什么,以便更好地了解正在发生的事情?

不确定这是否是原因,但您不能将一个编译器生成的obj文件链接到另一个链接器。您必须将编译器和链接器从Microsoft切换到Intel,或者两者都不切换。@SergeBallesta我正在使用Intel链接器,这似乎是失败的地方。从日志中:
完成执行任务“XILIB”--失败