当我尝试编译它时,我有大量的Boost / Spirit元程序正在吹gcc的堆栈。
如何增加gcc的堆栈大小,以便编译该程序?
注意:没有无限递归,但是有足够的偶然递归来耗尽gcc的堆栈。
答案 0 :(得分:11)
在Linux上,您可以在/etc/security/limits.conf中扩展堆栈大小。
您可以使用
检查当前的堆栈大小$ ulimit -s
8192
然后将堆栈展开为双倍:
youruser soft stack 16384
然后重新开始。
这将增加您正在运行的所有可执行文件的堆栈大小,而不仅仅是GCC。
答案 1 :(得分:2)
我在编译器脚本中使用它:
CFLAGS + = -Wl, - stack,10485760
答案 2 :(得分:1)
可以在链接期间配置堆栈大小。您应该查看有关链接器脚本的详细信息。这只会改变单个程序的堆栈大小。