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

Jef*_*ard 10 c++ gcc boost-spirit

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

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

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

Lir*_*una 11

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

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

$ ulimit -s
8192
Run Code Online (Sandbox Code Playgroud)

然后将堆栈扩展为双倍:

youruser    soft    stack    16384
Run Code Online (Sandbox Code Playgroud)

然后重新开始.

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

  • 如果它是软限制,则可以通过输入ulimit -s <limit>来增加它,而无需重新登录.这当然只适用于当前的shell. (5认同)