今天把游戏项目移植windows phone时碰到的这个问题,并且一堆这种类似的错误,百度了下,最终解决。

参考文章:

  1. http://stackoverflow.com/questions/11478055/lnk2013-error-fixup-overflow
  2. Incremental Linking 增量链接
  3. 关于VC++的增量链接(Incremental Linking) 

出现这种问题,是因为使用了增量链接的原因。什么是增量链接上面的文章已经说了,这个问题主要处在visual系列的编辑器。这个特性是链接器为了<提高链接速度>而增加的功能. 说是这样, 可能不理解, 下面就说说其原理:

<p>
    <span style="line-height:1.5;">比如说有一个源代码文件, 你写了许多许多行, 你正在调试它, 你突然发现某个地方</span><span style="line-height:1.5;">有一个小BUG, 你打算改正, 好了, 错误改正了, 但是链接器该采用何种方式链接新代码?</span>
</p>
<p>
    <p>
        &nbsp; &nbsp;其一: 可以把obj删除, 然后重新生成.
    </p>
    <p>
        &nbsp; &nbsp;其二: 为每个函数预留一部分空间, 编译链接时, 只是修改你修改过的函数<span style="line-height:1.5;">对应的代码, 其它二进制代码保持不变.</span>
    </p>
    <p>
        &nbsp; &nbsp;可能你已经明白了, 为目标(函数)代码"预留一部分空间", 这就是"增量"的含<span style="line-height:1.5;">义. 当代码修改后, 只需要修改这一部分的目标代码即可快速完成编译与链接!&nbsp;</span><span style="line-height:1.5;">这就为调试代码时快速修改编译提高了速度! 这也是为什么调试器</span><span style="line-height:1.5;">支持 "Edit and Continue" 特性!</span>
    </p>
    <p>
        这不浪费程序空间么? 你可能会想, 不过确实如此. 正因为如此, Debug版本的<span style="line-height:1.5;">目标文件会远远大于Release版本的目标文件(不单因为此). 在Release编译时, 是</span><span style="line-height:1.5;">不能启用增量链接模式的。</span>
    </p>
    <p>
        <span style="line-height:1.5;">在开发的过程中,在Debug的情况下vs建议使用Incremental Linking,在发布Release版本的时候则要禁掉Incremental Linking,以实现程序的最优化。如果发现在开启Incremental Linking的情况下,发现莫名其妙的编译问题,可禁掉Incremental Linking</span>
    </p>
    <p style="text-align:center;">
        <span style="line-height:1.5;"><a target="_blank" href="http://www.hudongdong.com/content/uploadfile/201510/dd8a1445227251.png" id="ematt:633"><img src="http://www.hudongdong.com/content/uploadfile/201510/dd8a1445227251.png" title="点击查看原图" alt="N7GXIHBD9OJ4RQQGK[XY]B0.png" border="0" width="593" height="113" /></a><br />

    </p>
    <p style="text-align:left;">
        <span style="line-height:1.5;">关闭方法就是按照上图,在项目的Properties(属性)里面,选择Linker选项,在里面把Enable Incremental Lingking功能关闭。<br />

    </p>
</p>
<p>
    <br />
</p>

Last modification:January 1st, 1970 at 08:00 am
如果觉得我的文章对你有用,请随意打赏: ☞已打赏列表