在编译一文件的时候出现以下错误:
fatal error C1076: compiler limit : internal heap limit reached; use /Zm to specify a higher limit
具体详细解释:
改成/Zm500
/Zmnumber 为预编译头确定编译器的内存分配限制。number 是比例因子,其默认值为 100,指定分配 50MB 内存。number 的最大值为 2000。下表说明 number 如何修改内存分配:
number 内存分配
10 5.0 MB
100 50 MB
200 100 MB
1000 500 MB
2000 1000 MB
在早期的 Visual C++ 版本中,编译器使用了大量的离散堆,每个堆都有一定的限制。编译器现在可以根据需要使堆动态增大,只要求分配给预编译头的内存的大小固定不变。只有在极少数涉及非常大或非常复杂的程序的情况下,才会导致超出预编译头的堆大小限制。如果程序超过这些限制,请使用 /Zm 缩放所有限制的总大小。
number 内存分配
10 5.0 MB
100 50 MB
200 100 MB
1000 500 MB
2000 1000 MB
在早期的 Visual C++ 版本中,编译器使用了大量的离散堆,每个堆都有一定的限制。编译器现在可以根据需要使堆动态增大,只要求分配给预编译头的内存的大小固定不变。只有在极少数涉及非常大或非常复杂的程序的情况下,才会导致超出预编译头的堆大小限制。如果程序超过这些限制,请使用 /Zm 缩放所有限制的总大小。
在工程-设置-C/C++中Project Opotions里增加 /Zmnumber即可