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