[英]How to increase stack size when compiling a C++ program using MinGW compiler
我正在嘗試編譯提供給我的程序。 當提供不同的值時,程序會測試算法快速排序的運行時間。 我需要增加堆棧的大小才能運行非常大的數字。
我讀到使用以下命令: 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。
為了改變堆棧的大小以運行可能導致堆棧溢出的 C++ 程序,請使用以下命令。
g++ -Wl,--stack,16777216 -o file.exe file.cpp
這會將堆棧大小增加到 16MiB,如果您需要更大的大小,則將值從16777216
字節增加到您需要的任何值。
請務必將file.exe
和file.cpp
替換為您正在運行的文件和可執行文件的相應名稱。
還要注意,在命令中它的-Wl
(小寫 L)
g++ -Wl,--stack,1000000000 -o main.exe main.cpp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.