VS2005上一个坑:error C1023 关于pch

Posted 细语细语

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS2005上一个坑:error C1023 关于pch相关的知识,希望对你有一定的参考价值。

昨天编译就报错:
c1xx : fatal error C1023: ‘UnicodeDebug\ImEngine.pch’ : unexpected error with pch, try rebuilding the pch
———————————————————————–
查了半天应该是ASLR的问题,

技术分享
(Visual Studio 2012: Configuration Properties -> Linker -> Advanced -> “Randomized Base Address”)
我是VS2005,该VS还不支持ASLR,所以尝试关闭操作系统的ASLR;
查看注册表HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\MoveImages
若没有改注册表项就自己创建一个设置DWORD值为0。

———————————————————————————
移动映像文件,ASLR 相当于在地址空间中从默认位置移动映像文件到一个随机位置。所以叫 moveimage
pch 可能硬编码了映像文件基址
———————————————————————————-
ASLR :address space layout randomization

 

 

———————–
对于项目下多个工程的情况,需要依工程间依赖关系逐个重编译一遍,然后再对整个项目编译。这样每次要重编译整个项目的时候都需要逐个工程重编译一次,在编译项目,十分繁琐。所以我选择重装系统来解决这个问题。
可能是WIN7和VS2005哪儿更新导致2005抽风导致的,毕竟比较了下解决这个问题需要花费大量的时间与几乎没啥收益的回报,我还是选择花半天时间重装系统划算。

以上是关于VS2005上一个坑:error C1023 关于pch的主要内容,如果未能解决你的问题,请参考以下文章

VS编译链接时错误(Error Link2005)的解决方法

VS2017项目升级 error LNK2005: "public: __thiscall ATL::CTime::

静态成员变量初始化在vs中报错“error LNK2005 static VimbaSystem...已经在...obj中定义”

VS2005 学习记录

为啥我的VS2005连不上SQL2005呀!建立连接时出现了错误!

关于vs2005 __RPC__out __RPC__in 没有定义编译错误