Что делать, если пакетная рекурсия превышает пределы стека при запуске Boost.Build?

Я использую 64-битную Win 7.

Я загрузил последний исходный код Boost, и для того, чтобы собрать двоичные файлы, мне нужно пройти через процесс Boost.Build. Я также взял последнюю версию Boost.Build с официального сайта, и когда я запустил ./bootstrap, я получил ошибку:

******  B A T C H   R E C U R S I O N  exceeds STACK limits ******
Recursion Count=592, Stack Usage=90 percent
******       B A T C H   PROCESSING IS   A B O R T E D      ******

У меня i5, 8 гб памяти.

Есть ли другой способ получить двоичные файлы для ускорения GCC (G++). Я знаю, что есть Boostpro, но он может дать мне только двоичные файлы VS.


person Dusan Trtica    schedule 18.09.2012    source источник


Ответы (4)


Эта ошибка возникает, когда:

  • вы используете исходники из пакета *.tar.bz2 для сборки Windows, и
  • вы не указываете набор инструментов.

Либо использование исходного пакета *.zip или указание набора инструментов (bootstrap.sh msvc или что-то еще) решает эту проблему (по крайней мере, для меня).

person DevSolar    schedule 28.06.2013

Ответ уже дали Джесси Гуд и DevSolar

но нужна какая-то комбинация

для Windows + MinGW (gcc)

1) в CMD в корневом каталоге Boost введите

.\bootstrap.bat gcc

аргумент gcc остановит ошибку рекурсии

2) тогда b2 будет сгенерирован в том же каталоге

самый простой способ установки

.\b2 toolset=gcc --prefix="path\of\compiled\files\" install

необходим аргумент toolset=gcc, иначе компиляция .dll завершится ошибкой

3) добавить

"path\of\compiled\files\include\boost_?_??"
"path\of\compiled\files\lib"

к системному пути (вы можете поискать в Google «добавить переменную системного пути win», Win 7 не требует перезагрузки для активации настройки)

person maythe4thbewithu    schedule 09.09.2014
comment
использование .\bootstrap.bat gcc решило проблему рекурсии, спасибо - person stackmalux; 23.09.2019

  1. Перейдите в tools\build\v2\ в каталоге boost и запустите загрузчик оттуда.

  2. Запустите b2 toolset=gcc install --prefix=PREFIX из того же каталога, что и выше, где PREFIX — это место, где вы хотите установить boost.build.

  3. Добавьте PREFIX\bin в переменную среды PATH, а затем в корневом каталоге boost введите что-то вроде следующего (это пример, измените параметры по своему усмотрению, чтобы найти список параметров, введите b2 --help):

набор инструментов b2 = gcc address-model = 64 вариант = ссылка на выпуск = статический, общий поток = многопотоковый --layout = системная целевая ОС = окна

Надеюсь, это поможет.

person Jesse Good    schedule 18.09.2012

Я видел, как это происходило, когда версия Boost устарела и не поддерживает текущий набор инструментов. Например, boost-1.57.0 не поддерживает компилятор VC15 и выдал мне ваше сообщение об ошибке.

Простым решением было использовать самую последнюю версию Boost.

person James Hirschorn    schedule 20.03.2019