Boost 1.57.0 bootstrap.bat не работает для Visual Studio .NET 2003

На машине разработчика Vista SP1 с установленным только Visual Studio .NET 2003 SP1

- с ускорением 1.44.0 У меня нет проблем с генерацией b2.exe и bjam.exe с помощью bootstrap.bat
- с ускорением 1.57.0 Я получаю это сообщение об ошибке при запуске bootstrap.bat:

    Building Boost.Build engine

Failed to build Boost.Build engine.
Please consult bootstrap.log for furter diagnostics.

Это происходит из командной строки cmd.exe или Visual Studio .NET 2003.

У меня в boostrap.log есть следующие ошибки:

builtins.c (1885): ошибка C2065: 'FSCTL_GET_REPARSE_POINT': необъявленный идентификатор
builtins.c (1889): ошибка C2065: 'IO_REPARSE_TAG_SYMLINK': необъявленный идентификатор

builtins.c содержит

#ifdef OS_NT
#include <windows.h>
#ifndef FSCTL_GET_REPARSE_POINT
/* MinGW's version of windows.h is missing this, so we need
 * to include winioctl.h directly
 */
#include <winioctl.h>
#endif
#endif

и FSCTL_GET_REPARSE_POINT находится в winioctl.h, поставляемом с VS .NET 2003

Я предполагаю, что определение OS_NT по какой-то причине отсутствует?

NB: документация по Windows Boost 1.57.0 по-прежнему ссылается на VS .NET 2003


person Manuel Rozier    schedule 05.12.2014    source источник


Ответы (1)


У меня WindowsXP SP3 и MSVC 2005, и у меня были те же проблемы. Немного поигравшись, я добавил в src / engine / jam.h следующее:

#ifdef NT

#define _WIN32_WINNT 0x0501
#define IO_REPARSE_TAG_SYMLINK                  (0xA000000CL)

А также я использовал командную строку MSVC, чтобы все было настроено для MSVC.

person eungenue    schedule 10.12.2014
comment
Это исправление отлично работало с Visual Studio 2003. К сожалению, следующий шаг не удался; . \ b2 toolset = msvc-7.1 начал работать, но завершился ошибкой с несколькими сообщениями об ошибках. У меня сложилось впечатление, что Visual C ++ 7.1 больше не поддерживается для создания библиотек, хотя компиляция моих проектов, в которых используются только заголовки Boost 1.57.0, пока работает нормально. - person Gordon Brandly; 12.02.2015