Как увеличить размер стека при компиляции программы на C ++ с использованием компилятора MinGW - PullRequest
0 голосов
/ 22 февраля 2019

Я пытаюсь скомпилировать программу, которая была предоставлена ​​мне.Программа проверяет время выполнения алгоритма быстрой сортировки при наличии разных значений.Мне нужно увеличить размер стека, чтобы запускать действительно большие числа.

Я прочитал, чтобы использовать следующую команду: g++ -Wl,--stack,<size>

где size - это число для увеличения стека.

Однако это не работает для меня.В командной строке, когда я набрал точно следующее:

g++ -Wl,--stack,1000000000

и затем нажал Enter, я получил следующее сообщение:

C: / mingw /bin /../ lib / gcc / mingw32 / 5.3.0 /../../../ libmingw32.a (main.o) :(. text.startup + 0xa0): неопределенная ссылка на «WinMain @ 16»collect2.exe: ошибка: ld вернул 1 состояние выхода

Мне не разрешено изменять код, поэтому мой единственный вариант - увеличить размер стека в командной строке, а затем запустить мой код.

Я не знаю, что я делаю не так.Я неправильно ввожу команду?

Как мне увеличить размер стека в командной строке для программы на c ++ с использованием компилятора MinGW?Я использую Windows 10, если эта информация полезна.

1 Ответ

0 голосов
/ 23 февраля 2019

Чтобы изменить размер стека для запуска программы на C ++, которая может вызвать переполнение стека, используйте следующую команду.

g++ -Wl,--stack,16777216 -o file.exe file.cpp

Это увеличивает размер стека до 16 МБ, если вам нужно, чтобы он был больше, чем увеличение значения с 16777216 байтов до любого необходимого значения.

Обязательно заменитеfile.exe и file.cpp с соответствующими именами файла и исполняемого файла, который вы запускаете.

Также обратите внимание, что в команде это -Wl (строчная буква L)

...