我们有一个大型Visual Studio 2005 C++/Mfc解决方案,1个项目包含大约1300个源文件(大约650 .h和650 .cpp文件).我们还使用Boost和其他一些库(COM:MSXML,Office).
最近,我添加了一些boost :: multi_index实例来加速一些事情.这一切都在大部分时间汇编.但是现在,当我正在进行完整(发布)重建时,我会在几个模块上遇到编译器崩溃.
Fatal Error C1060: "compiler is out of heap space"
Run Code Online (Sandbox Code Playgroud)
我已经尝试在预编译的头文件中减少包含(删除了除标准MFC头之外的所有内容).另外,我删除了编译器选项/ Zm200(我们在编译预编译头文件之前需要它).
奇怪的是:当我在编译器崩溃后按F7(build)时,构建过程继续没有任何问题(或者至少到下一次编译器崩溃,再次按F7).但是能够在没有任何中断的情况下完成构建将会很棒.
我可以影响各个模块的构建顺序吗?这样,我可以将"有问题"的模块放在流程的开头(并希望崩溃不只是转移到其他模块).
BTW:完整的构建大约需要90分钟.
更新:
谢谢你的回答.我能够摆脱编译器崩溃并显着减少编译时间.这是我做的:
更新2:
上面,我提到"单核机器",实际上是一个较慢的双核机器.
有没有一种简单的方法可以在Windows下使用Visual Studio 2005 构建GMP(GNU多精度算术库,http://gmplib.org)?我试图找到有关自己构建库的信息,但找不到任何真正帮助我的东西.我自己建立图书馆的经验不是很丰富(我已经设法建立了提升,但就是这样).
还是有一个我不知道的稳定(预建)GMP发行版?
MPIR是一个有效的替代方案(http://www.mpir.org)吗?关于GMP网站上的MPIR的评论:对于一些Windows用户来说,这个"愤怒的GMP分叉"可能是真正的GMP的替代品,但他们必须处理大量的反GMP情绪.
编辑: MPFR C++包装页面包含指向Visual Studio的GMP/MPFR解决方案的信息/链接以及编译的gmp/mpfr库:http: //www.holoborodko.com/pavel/mpfr/
在我的WPF窗口中,我已经设置好了
Width="300" MinWidth="300" MaxWidth="300"
Run Code Online (Sandbox Code Playgroud)
当我最大化这个窗口时,它会停靠在左边的屏幕边框上,但是窗口的底部部分是Windows 8任务栏的UNDERNEATH.
我试过了
public MainWindow()
{
...
this.MaxHeight = System.Windows.SystemParameters.WorkArea.Height;
}
Run Code Online (Sandbox Code Playgroud)
,但这导致任务栏和我的应用程序之间有一些像素的可用空间.
我想