Building Boost 1.52 с нестандартным расположением MinGW

Я пытался собрать Boost из исходного кода для 64-битной системы, используя MinGW (x64), но не смог создать bjam.exe. Любой указатель на помощь приветствуется. Благодарю.

  • Пакет: Boost 1.52.0 (скачать с sourceforge, C: \ BoostSrc)
  • Пакет: MinGW-w64 (4.7.2-x64 rubenvb, C: \ MinGW \ rubenvb-4.7.2-64)

Я создал следующий пакетный файл, чтобы обеспечить повторяемость сборки, но все пошло не так. Я не могу собрать bjam.exe из предоставленного командного файла. Я не использую прилагаемый «bootstrap.bat» в качестве нестандартного пути установки MinGW (у меня есть несколько наборов mingw), и у меня не установлен MSVC на моей машине

SET BOOST_VER=boost_1_52_0
SET PATH_MINGW=C:\MinGW\rubenvb-4.7.2-64
SET PATH_BJAM=%~dp0\%BOOST_VER%\tools\build\v2\engine
SET PATH="%PATH_MINGW%\bin"PUSHD "%PATH_BJAM%"
REM check path
mingw32-make -version

REM error below
build.bat mingw --toolset-root=%PATH_MINGW% --show-locate-target

SET PATH=%OPATH%
POPD
REM ... some more ...

Сообщение об ошибке

gcc: ошибка: CreateProcess: нет такого файла или каталога

Когда я набираю команду непосредственно из командной строки (задайте путь, перейдите в location и вызовите build.bat), она идет гладко (с предупреждениями, которые, я думаю, можно игнорировать)

1

Решение

Это может решить вашу проблему, но даже если это не так, то в любом случае это хорошая идея.

Используйте другое имя переменной, отличное от PATH поскольку это встроенная и важная переменная среды windows, на которую может положиться MINGW.

3

Другие решения

После поиска в build.bat, расположенном в BOOST_ROOT \ tools \ build \ v2 \ engine, при предоставлении «mingw» в качестве набора инструментов, сценарий обошел шаг «угадывание набора инструментов» и не смог определить переменную «BOOST_JAM_TOOLSET_ROOT», оставив вызовы к gcc-связанным исполняемым файлам не удалось.

Теперь я изменил партию следующим образом

PUSHD "%PATH_BJAM%"SET "PATH=%PATH_MINGW%\bin"
REM add the line below
SET "BOOST_JAM_TOOLSET_ROOT=%PATH_MINGW%\"
build.bat mingw --show-locate-target
SET PATH=%OPATH%

Я вручную установил переменную BOOST_JAM_TOOLSET_ROOT из внешнего командного файла, и это сработало нормально. Остерегайтесь конечного символа «\», так как build.bat внутри добавляет переменную path следующим образом:

set "PATH=%BOOST_JAM_TOOLSET_ROOT%bin;%PATH%"

Большое спасибо за любые комментарии и предложения.

0

По вопросам рекламы [email protected]