2014-12-05 5 views
7

Su una macchina di sviluppo Vista SP1 con solo Visual Studio .NET 2003 SP1 installato

- con boost 1.44.0 Non ho problemi a generare b2. exe e bjam.exe utilizzando bootstrap.bat
- con boost 1.57.0 ricevo questo messaggio di errore quando si esegue bootstrap.bat:
Boost 1.57.0 bootstrap.bat non funziona per Visual Studio .NET 2003

Building Boost.Build engine 

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

Ciò si verifica da cmd.exe o Visual Studio .NET prompt dei comandi 2003 .

Ho questi errori in boostrap.log:

builtins.c (1885): Errore C2065: 'FSCTL_GET_REPARSE_POINT': identificatore non dichiarato
builtins.c (1889): Errore C2065: ' IO_REPARSE_TAG_SYMLINK': identificatore non dichiarato

builtins.c contiene

#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 

e FSCTL_GET_REPARSE_POINT è nel winioctl.h fornito con VS .NET 2003

Credo che l'OS_NT definire manca per qualche motivo?

NB: Boost 1.57.0 windows documentation fa ancora riferimento VS .NET 2003

risposta

7

ho WindowsXP SP3 e MSVC 2005 e ha avuto gli stessi problemi. Dopo un po 'di suonare in giro ho aggiunto quanto segue alla src/motore/jam.h:

#ifdef NT 

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

e anche io utilizzato prompt dei comandi MSVC di avere impostato tutto per MSVC

+0

che fissano ha lavorato molto con Visual Studio 2003. Sfortunatamente, il passo successivo fallì; ". \ b2 toolset = msvc-7.1" ha iniziato a funzionare ma ha fallito con diversi messaggi di errore. La mia impressione è che Visual C++ 7.1 non sia più supportato per la creazione di librerie, anche se la compilazione dei miei progetti che utilizzano solo intestazioni Boost 1.57.0 ha funzionato fino ad ora. –