在安装了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
答案 0 :(得分:7)
我有WindowsXP SP3和MSVC 2005并遇到了同样的问题。 经过一段时间的游戏后,我将以下内容添加到src / engine / jam.h:
#ifdef NT
#define _WIN32_WINNT 0x0501
#define IO_REPARSE_TAG_SYMLINK (0xA000000CL)
我还使用MSVC命令提示符为MSVC设置了所有内容