13

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

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

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

4

3 回答 3

12

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

您可以使用检查当前堆栈大小

$ ulimit -s
8192

然后将堆栈扩展为两倍:

youruser    soft    stack    16384

然后重新登录。

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

于 2009-07-21T01:01:03.963 回答
1

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

CFLAGS += -Wl,--stack,10485760

于 2015-03-25T05:04:28.583 回答
0

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

于 2009-07-21T01:24:52.937 回答