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': необъявленный идентификатор

buildins.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

1 ответ

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

#ifdef NT

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

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

Другие вопросы по тегам