前段日子在windows平台下开发了一BT软件,其中用到了libtorrent这个开源的BT库,当时用的版本是0.12版,
好久没去看发现libtorrent库已经升级到了0.13版,看了看发布报告,发现这个版本比0.12版解决了很多BUG,并且增加了很多新功能,所以决定试一试,把自己使用的版本也更新到0.13版,说弄就弄,做了一系列工作后,开始编译,居然报了个C1076的错误,猜想可能是0.13版使用了更多的模版代码所引起的
查了查资料:
致命错误 C1076
错误消息 (编译器限制 : 达到内部堆限制;使用 /Zm 指定更高的限制)
此错误可能是由过多符号或过多模板实例化引起的。
解决此问题的方法是:
使用 /Zm 选项设置编译器内存限制。
消除不需要的包含文件。
消除不需要的全局变量,例如,动态分配内存而不是声明一个大数组。
消除未使用的声明。
将大函数拆分为更小的函数。
将大类拆分为更小的类。
将当前文件拆分成更小的文件。
如果在生成开始后立即发生 C1076,则说明为 /Zm 指定的值对程序而言可能太高。请减小 /Zm 的值。
呵呵,果然如我猜想的那样. 在编译指令当中多加了条/Zm200, 随即解决问题.
好久没去看发现libtorrent库已经升级到了0.13版,看了看发布报告,发现这个版本比0.12版解决了很多BUG,并且增加了很多新功能,所以决定试一试,把自己使用的版本也更新到0.13版,说弄就弄,做了一系列工作后,开始编译,居然报了个C1076的错误,猜想可能是0.13版使用了更多的模版代码所引起的
查了查资料:
致命错误 C1076
错误消息 (编译器限制 : 达到内部堆限制;使用 /Zm 指定更高的限制)
此错误可能是由过多符号或过多模板实例化引起的。
解决此问题的方法是:
使用 /Zm 选项设置编译器内存限制。
消除不需要的包含文件。
消除不需要的全局变量,例如,动态分配内存而不是声明一个大数组。
消除未使用的声明。
将大函数拆分为更小的函数。
将大类拆分为更小的类。
将当前文件拆分成更小的文件。
如果在生成开始后立即发生 C1076,则说明为 /Zm 指定的值对程序而言可能太高。请减小 /Zm 的值。
呵呵,果然如我猜想的那样. 在编译指令当中多加了条/Zm200, 随即解决问题.