【发布时间】:2019-07-16 05:06:49
【问题描述】:
我正在尝试编译提供给我的程序。当提供不同的值时,程序会测试算法快速排序的运行时间。我需要增加堆栈的大小才能运行非常大的数字。
我阅读使用以下命令:g++ -Wl,--stack,<size>
其中 size 是增加堆栈的数量。
但是,这对我不起作用。当我输入以下内容时,在命令提示符中:
g++ -Wl,--stack,1000000000
然后按回车,我收到以下消息:
C:/mingw/bin/../lib/gcc/mingw32/5.3.0/../../../libmingw32.a(main.o):(.text.startup+0xa0): 未定义对“WinMain@16”collect2.exe 的引用:错误:ld 返回 1 退出状态
我不允许更改代码,所以我唯一的选择是在命令提示符下增加堆栈大小,然后运行我的代码。
我不知道我做错了什么。我输入的命令有误吗?
如何在使用 MinGW 编译器的 c++ 程序的命令提示符中增加堆栈大小?如果该信息有帮助,我正在使用 Windows 10。
【问题讨论】:
-
它是否适用于较小的堆栈大小值?
-
是的,它适用于像 10,000 这样的小值。如果我尝试 1,000,000 它根本行不通。我没有收到错误消息或任何东西,程序刚刚结束。
-
这对我没有帮助。我没有能力更改代码。我不允许更改代码。它不是我的代码,它是我的教授代码,他严格说不要更改代码。我只需要增加我的堆栈大小。好吧,1GB 太高了,我不打算让堆栈那么高。老实说,我不知道该放什么数字。
-
我只能建议你继续将堆栈大小减半,直到找到一个可以生成工作 exe 的值,然后查看它是否在没有耗尽堆栈空间的情况下运行。
-
我能弄明白。我在下面发布了答案,以防其他人有同样的问题。
标签: c++ compiler-errors mingw stack-overflow