Boost 1.57.0 bootstrap.bat not working for Visual Studio .NET 2003
Asked Answered
N

1

7

On a dev machine Vista SP1 with only Visual Studio .NET 2003 SP1 installed

- with boost 1.44.0 I have no problem to generate b2.exe and bjam.exe using bootstrap.bat
- with boost 1.57.0 I get this error message when running bootstrap.bat :

    Building Boost.Build engine

Failed to build Boost.Build engine.
Please consult bootstrap.log for furter diagnostics.

This occurs from cmd.exe or Visual Studio .NET 2003 command prompt.

I have these errors in boostrap.log :

builtins.c(1885) : error C2065: 'FSCTL_GET_REPARSE_POINT' : undeclared identifier
builtins.c(1889) : error C2065: 'IO_REPARSE_TAG_SYMLINK' : undeclared identifier

builtins.c contains

#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

and FSCTL_GET_REPARSE_POINT is in the winioctl.h provided with VS .NET 2003

I guess the OS_NT define is missing for some reason?

NB : Boost 1.57.0 windows documentation still references VS .NET 2003

Node answered 5/12, 2014 at 16:3 Comment(0)
S
7

I have WindowsXP SP3 and MSVC 2005 and had the same problems. After a bit of playing around I added the following to the src/engine/jam.h:

#ifdef NT

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

And also I used MSVC command prompt to have everything setup for MSVC

Stag answered 10/12, 2014 at 18:35 Comment(1)
That fix worked great with Visual Studio 2003. Unfortunately, the next step failed; ".\b2 toolset=msvc-7.1" started to run but failed with several error messages. My impression is that Visual C++ 7.1 just isn't supported for building libraries anymore, though compiling my projects that only use Boost 1.57.0 headers has worked fine so far.Sunbonnet

© 2022 - 2024 — McMap. All rights reserved.