title: Trying to switch MSVC for Intel compiler and getting LNK1243 errors
body: <h3>Background</h3>
  <p>I'm trying to replace the compiler of a static library currently built in VS2015 with the Intel compiler (Version 17.0.1.143 Build 20161005). After correcting whatever compile errors there were I started receiving a link time error <code>error LNK1243: invalid or corrupt file: COMDAT section 0x2E6 associated with following section 0x0</code>. The exact section (<code>0x2E6</code> shown) depends on if I have precompiled headers turned on or off, but the error remains the same.</p>
  <h3>What I've researched:</h3>
  <p><a href="https://www.google.com/search?q=LNK1243%09invalid%20or%20corrupt%20file%3A%20COMDAT%20section%20associated%20with%20following%20section" rel="nofollow noreferrer">Googling the error</a> leads to a plethora of results (a total of about 7, with about 3 actually pertaining to the linking error). One was a linking error in <a href="http://lists.llvm.org/pipermail/llvm-dev/2015-September/090476.html" rel="nofollow noreferrer">LLVM</a>, another is a Microsoft site that links to the VS2008 <a href="https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2008/fkdh2csa(v=vs.90)" rel="nofollow noreferrer">documentation</a> that links to a page that describes the <a href="https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2008/x2s8e5w0(v%3Dvs.90)" rel="nofollow noreferrer">linking error</a>. The third is a <a href="https://software.intel.com/en-us/articles/intel-parallel-studio-xe-2016-composer-edition-compilers-fixes-list" rel="nofollow noreferrer">link to fixes</a> in the Intel Parallel Studio XE 2016 that should have all been included in the version I'm using.</p>
  <p>The Intel site says that it fixes</p>
  <blockquote>
  <p>/Qipo results in linker error: fatal error LNK1243: invalid or corrupt file: COMDAT section 0x30FE associated with following section 0x0</p>
  </blockquote>
  <p>and the Microsoft site describes the error as</p>
  <blockquote>
  <p>The linker has detected a corrupt .obj file. A section must be associated with another section that precedes it.</p>
  </blockquote>
  <p>I turned up the compiler output to diagnostic, but did not see anything helpful there.</p>
  <h3>Question</h3>
  <p>What is can cause this error (and how can the causes be fixed)? Alternatively, what should I be looking for in the *.obj files to glean a better understanding of what's going on?</p>