在Windows上增加堆栈大小(GCC)

问题描述:

有没有办法在编译/链接时使用GCC增加Windows应用程序的堆栈大小?在Windows上增加堆栈大小(GCC)

+0

任何人都可以解释我增加堆栈的大小是什么意思?堆栈帧的一部分被堆栈上的功能占用。而堆栈是由操作系统决定的吗? `editbin`如何帮助它?我很困惑! – claws 2010-08-04 19:27:20

你可以在链接后运行editbin。

+0

我绝对可以 - 而且这似乎是我不可避免要做的 - 但我正在寻找一种方式在链接时做到这一点。不过谢谢。 – Landon 2008-10-02 00:56:23

在创建线程时使用dwStackSize paremater,但我不确定如何更改主线程的大小,这表明它在exe的头文件中,所以它可能是编译器/链接器的选项,否则您需要找到标题的相关部分并自行更改。

http://msdn.microsoft.com/en-us/library/ms686774(VS.85).aspx

IIRC,在GCC可以提供--stack,[字节]参数给ld。

例如

gcc -Wl,--stack,16777216 -o file.exe file.c 

要有一堆16MiB,我认为默认大小是8MiB。

+0

这是我最初寻找的。不幸的是,我在Windows上没有任何运气。你有吗? – Landon 2008-10-02 00:56:55

Windows中有两种堆栈大小。最初提交的大小和总预留大小。您可以在.def文件中设置STACKSIZE语句。