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

时间:2014-12-05 16:03:46

标签: 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.

这是从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位于VS .NET 2003提供的winioctl.h中

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

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

1 个答案:

答案 0 :(得分:7)

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

#ifdef NT

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

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