如何增加gcc可执行堆栈大小?

时间:2009-07-21 00:56:26

标签: c++ gcc boost-spirit

当我尝试编译它时,我有大量的Boost / Spirit元程序正在吹gcc的堆栈。

如何增加gcc的堆栈大小,以便编译该程序?

注意:没有无限递归,但是有足够的偶然递归来耗尽gcc的堆栈。

3 个答案:

答案 0 :(得分:11)

在Linux上,您可以在/etc/security/limits.conf中扩展堆栈大小。

您可以使用

检查当前的堆栈大小
$ ulimit -s
8192

然后将堆栈展开为双倍:

youruser    soft    stack    16384

然后重新开始。

这将增加您正在运行的所有可执行文件的堆栈大小,而不仅仅是GCC。

答案 1 :(得分:2)

我在编译器脚本中使用它:

  

CFLAGS + = -Wl, - stack,10485760

答案 2 :(得分:1)

可以在链接期间配置堆栈大小。您应该查看有关链接器脚本的详细信息。这只会改变单个程序的堆栈大小。