Чтобы создать Boost-загрузку под Windows, я могу успешно выполнить следующую команду в консоли cmd
в папке boost
:
b2.exe install --prefix=_install --build-dir=_build --with-atomic --with-date_time --with-thread address-model=64 toolset=msvc-12.0 > build.log 2>&1
Я пытаюсь сейчас выполнить ту же командуиз следующего скрипта Python:
#! python
import os
import subprocess
import sys
os.chdir('boost')
if not os.path.isfile('b2.exe'):
sys.exit("Call boost-configure.py before.")
subprocess.call('b2.exe install'
' --prefix=_install'
' --build-dir=_build'
' --with-atomic'
' --with-date_time'
' --with-thread'
' address-model=64'
' toolset=msvc-12.0'
' > build.log 2>&1')
os.chdir('../')
Но я получаю следующую ошибку:
error: at Jamroot:174
error: Attempt to redeclare already registered project id '/boost'.
error: Original project:
error: Name: Jamfile<C:\git\test_system\source\library\boost>
error: Module: Jamfile<C:\git\test_system\source\library\boost>
error: Main id: /boost
error: File: Jamroot
error: Location: .
error: New project:
error: Module: Jamfile<C:\git\test_system\source\library\boost\.>
error: File: Jamroot
error: Location: .
Поскольку команда b2
выполняется в первом случае, я предполагаю, что проблема связанадля среды выполнения: Python subprocess.call
не предоставляет тот же контекст, что и cmd
, по-видимому.У кого-нибудь есть идея?
Отредактировано
Я видел по следующей ссылке: https://lists.boost.org/boost-build/2012/08/26295.php, что может возникнуть проблема, если диск пути не пишется с заглавной буквы в том жепуть в обоих упомянутых путях.В моем случае я отмечаю точку ('.') В конце пути, упомянутого в сообщении об ошибке.Может ли это объяснить ошибку?