Установка размера стека с помощью GCC 4.6.2 C ++ Qt, MinGW, Vista

Я хочу увеличить размер стека моей программы, потому что у меня сложный рекурсивный алгоритм, и переписывать итеративно было бы НАСТОЯЩЕЙ болью.

Я использую GCC C ++ 4.6.2. MinGw, построенный с помощью файла Qt .pro (я использую Qt для интерфейса GUI) в Vista.

Совет на этом веб-сайте заключается в использовании: -

gcc -Wl,--stack,4194304

и отправить это на этап ссылки g ++ с помощью: -

LIB += -Wl,--stack,4194304

но ошибки компоновщика с: -

g ++: ошибка: нераспознанный параметр '--stack, 4194304'

Я попытался отправить параметры на этап компиляции с помощью QMAKE_CXXFLAGS + =, но g ++ все еще работает.

Единственный вариант, который не блокируется, - это -fno-stack-limit из документации GCC (.pdf 4.5.0, p.260), но мой стек все еще переполняется. Другие варианты, упомянутые в этом параграфе. барф.


person John D    schedule 28.10.2012    source источник


Ответы (2)


Вам нужно добавить QMAKE_CXXFLAGS += -Wl,--stack,4194304 в ваш файл .pro.

person opc0de    schedule 29.10.2012
comment
Спасибо. У меня был пробел между -Wl и --stack, поэтому G ++ barfed (Doh!). Однако я обнаружил, что параметры должны быть на этапе компоновки, они игнорируются на этапе компиляции. Таким образом, должно быть: - LIB + = -Wl, - stack, 4194304 в файле Ot qmake .pro. - person John D; 29.10.2012

Попробуй это:

ulimit -s STACK_SIZE
person Bhagat Vishal    schedule 27.02.2014