我在预编译头文件和地址空间布局随机化不兼容的几个站点上阅读过。是什么使它们不兼容?要解决它需要什么?
我的问题是与操作系统无关,我听说这在具有grsecurity的Linux和较新的Windows版本上是一个问题。 (我不知道还有什么ASLR。)
最佳答案
预编译的 header 与ASLR不兼容。
ASLR破坏了旧版本的Visual C++编译器使用的用于实现预编译 header 的特定技术。有an article on the Visual C++ Team Blog,其中包含有关该问题的详细信息以及如何解决此问题的说明。没有适用于Visual C++ 2008 SP1的修补程序,并且Visual C++ 2010中不存在此问题。
我真的不知道,在Linux上可能存在类似的问题。我不是Linux,Linux安全性或GCC方面的专家。