使用mingw编译时增加堆栈大小?

2022-01-22 00:00:00 stack-overflow stack mingw c++ callstack

我正在编写一个递归洪水填充算法来查找图像中的连接组件,我的代码在 MSVC 2008 编译器中编译和运行良好;但是 mingw 编译的二进制文件在运行时崩溃了.

I'm writing a recursive flood-fill algorithm to find connected components in an image, my code compiles and runs well with MSVC 2008 compiler; but the mingw-compiled binary crashed at runtime.

在我使用 std::stack 将算法转换为非递归后,一切顺利.

After I converted the algorithm to non-recursive with std::stack, everything goes well.

但是如果我在某些情况下必须使用递归算法,而 mingw 无法处理呢?

But what if I must use recursive algorithm in some case, and mingw cannot handle it?

如何增加二进制文件的堆栈大小,是否有任何编译选项?

How can I increased stack size of a binary, is there any compilation options?

谢谢

推荐答案

使用

gcc -Wl,--stack,N

其中 N 是堆栈大小.例如.gcc -Wl,--stack,4194304

where N is stack size. E.g. gcc -Wl,--stack,4194304

相关文章