我使用 GNU g++ 构建并编译了一个命令行程序,该程序由于多种原因而“溢出”堆栈,主要是深层继承、创建的大量对象等。因此,我在 Mac OS X 上遵循了此解决方法来解决链接时出现问题:
-Wl,-stack_size,0x10000000,-stack_addr,0xc0000000
在Linux下,我刚刚尝试了ulimit -s unlimited
;以这种方式运行程序不会再出现段错误
但是当尝试在 Windows 上使用 GNU g++ 编译它时,编译器无法识别
-Wl,-stack_size,0x10000000,-stack_addr,0xc0000000
您会使用什么其他选项来解决该问题?
提前致谢
最佳答案
-Wl,--stack,somelargesize看起来像你所追求的。但是,我强烈建议重构您的代码以使用堆进行大量分配。地址空间是有限的资源,您的“解决方法”需要相当大的一 block 。
关于c++ - 使用 gnu g++ 解决 Windows 中堆栈限制的解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1368240/