【发布时间】:2010-09-14 11:10:09
【问题描述】:
有没有办法使用 GCC 在编译/链接时增加 Windows 应用程序的堆栈大小?
【问题讨论】:
-
谁能解释一下增加堆栈大小是什么意思?堆栈帧是堆栈上的函数占用的部分。堆栈是由操作系统决定的吗?
editbin如何帮助它?我很困惑!
标签: windows gcc compiler-construction linker stack
有没有办法使用 GCC 在编译/链接时增加 Windows 应用程序的堆栈大小?
【问题讨论】:
editbin 如何帮助它?我很困惑!
标签: windows gcc compiler-construction linker stack
IIRC,在 GCC 中,您可以向 ld 提供 --stack,[bytes] 参数。
例如
gcc -Wl,--stack,16777216 -o file.exe file.c
要拥有 16MiB 的堆栈,我认为默认大小是 8MiB。
【讨论】:
你可以在链接后运行editbin。
【讨论】:
Windows 中有两种堆栈大小。最初提交的大小和总保留大小。您可以在 .def 文件中使用 STACKSIZE 语句设置两者。
【讨论】:
创建线程时,您使用 dwStackSize 参数,但我不确定如何更改主线程的大小,这表明它在 exe 的头文件中,因此它可能是编译器/链接器的一个选项,否则你需要找到header的相关部分,自己修改。
http://msdn.microsoft.com/en-us/library/ms686774(VS.85).aspx
【讨论】: