我有一个很大的Boost/Spirit元编程,当我尝试编译它时,会导致gcc的栈溢出。
我该如何增加gcc的栈大小,以便编译这个程序?
注意:没有无限递归,但是有足够多的偶发递归,以耗尽gcc的栈。
我有一个很大的Boost/Spirit元编程,当我尝试编译它时,会导致gcc的栈溢出。
我该如何增加gcc的栈大小,以便编译这个程序?
注意:没有无限递归,但是有足够多的偶发递归,以耗尽gcc的栈。
在Linux上,您可以在/etc/security/limits.conf中扩展堆栈大小。
您可以使用以下命令检查当前的堆栈大小
$ ulimit -s
8192
然后将堆栈扩展为原来的两倍:
youruser soft stack 16384
然后重新登录。
这将增加所有可执行文件的堆栈大小,而不仅仅是GCC的。
sourav soft stack 2000000
。然后我无法在Linux上启动像Chromium、Falkon和Edge浏览器这样的应用程序!当我启动它们时,它们都会向我的SSD写入10 GB的数据... - 15 Volts它的作用是增加堆栈大小。CFLAGS += -Wl,--stack,10485760