c++ - 使用 gnu g++ 解决 Windows 中堆栈限制的解决方法

标签 c++ gnu

我使用 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/

相关文章:

c++ - 简单的 C++ 函数包含失败

c++ - 有没有办法构建 C++ 自定义限定符?

c++ - 如何在 CLion 中修复对 `GetAcceptExSockaddrs' (Boost.Asio) 的 undefined reference

c++ - 重定位值不适合 24 位

python - 根据模式将一个文件拆分为多个文件(切割可以发生在行内)

c++ - 如何在exe文件中构建C++项目嵌入所有动态链接库?

c++ - 在环形网格内创建一个 3x3 框

sed - Windows 中的 GNU sed 和行终止符

c - OS X 链接器中 GNU 的 --wrap 链接器标志的等价物是什么?

linux - 检查是否使用 [ -o OPTION ] 设置了 shell 选项,打开 OPTION 时出现奇怪的行为