Я хочу увеличить размер стека моей программы, потому что у меня есть сложный рекурсивный алгоритм, и было бы НАСТОЯЩЕЙ болью переписывать итеративно.
Я использую 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 ++ все еще barfs.
Единственная опция, которая не использует barf — это -fno-stack-limit из документации GCC (.pdf 4.5.0, p.260), но мой стек по-прежнему переполняется. Другие варианты, упомянутые в этом пункте. блевать.
Вам нужно добавить QMAKE_CXXFLAGS += -Wl,--stack,4194304
в ваш .pro файл.
Попробуй это:
ulimit -s STACK_SIZE