VS2005上一个坑:关于pch 的 error C1023

时间:2021-12-27 14:57:00

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

VS2005上一个坑:关于pch 的 error C1023
(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抽风导致的,毕竟比较了下解决这个问题需要花费大量的时间与几乎没啥收益的回报,我还是选择花半天时间重装系统划算。