簡體   English   中英

使用 MinGW 編譯器編譯 C++ 程序時如何增加堆棧大小

[英]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.exefile.cpp替換為您正在運行的文件和可執行文件的相應名稱。

還要注意,在命令中它的-Wl (小寫 L)

g++ -Wl,--stack,1000000000 -o main.exe main.cpp

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM