Boost 1.57.0 bootstrap.bat不适用于Visual Studio .NET 2003

Man*_*ier 7 boost visual-studio-2003 bjam b2

在安装了Visual Studio .NET 2003 SP1的开发机器Vista SP1上

- 使用boost 1.44.0我使用bootstrap.bat生成b2.exe和bjam.exe没有问题
- 使用boost 1.57.0我收到此错误消息时运行bootstrap.bat:

    Building Boost.Build engine

Failed to build Boost.Build engine.
Please consult bootstrap.log for furter diagnostics.
Run Code Online (Sandbox Code Playgroud)

这是从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
Run Code Online (Sandbox Code Playgroud)

和FSCTL_GET_REPARSE_POINT在VS .NET 2003提供的winioctl.h中

我想OS_NT定义由于某种原因缺失了?

注意:Boost 1.57.0 windows文档 仍然引用VS .NET 2003

eun*_*nue 7

我有WindowsXP SP3和MSVC 2005并遇到了同样的问题.经过一段时间的游戏后,我将以下内容添加到src/engine/jam.h中:

#ifdef NT

#define _WIN32_WINNT 0x0501
#define IO_REPARSE_TAG_SYMLINK                  (0xA000000CL)
Run Code Online (Sandbox Code Playgroud)

我还使用MSVC命令提示符为MSVC设置了所有内容