###

# Boost.Build

## vc-8_0 toolset

## Introduction

Boost.Build's vc-8_0 toolset supports the Microsoft Visual C++ .NET 2005 (Visual Studio or Express edition). This toolset is an extention to the `msvc` toolset and is useful for when you need to have access to several versions of Visual C++.

## Configuration Variables

The `vc-8_0` toolset responds to the following variables which can be set in the environment or configured on the jam command-line using `-sVARIABLE_NAME=`value:

Variable Name | Semantics | Default | Notes
--- | --- | --- | ---
`VC80_ROOT` | Path to installation of VC8 | `C:\Program Files\Microsoft Visual Studio 8\VC` | If `MSVCDir` is set in the environment, the toolset will assume `VCVARS32.BAT`has already been called, and will ignore this variable.

### Note about warnings

The implementation of the standard C++ library bundled with Visual C++ .NET 2005 might issue a number of spurious warnings feature is deprecated when using Boost headers. The warnings come from the "Safe" C++ Library, which labels many standard C and C++ library constructs as deprecated when in fact they may be used safely and correctly. Define `_SCL_SECURE_NO_DEPRECATE` globally to eliminate these errors. Alternatively, you can enclose all includes of Boost headers and C++ standard library headers with `#pragma warning(disable:4996)`, as demonstrated below:

      #pragma warning(push)
      #pragma warning(disable : 4996)

      #include <vector>
      #include <algorithm>
      #include <boost/shared_ptr.hpp>
      #include <boost/noncopyable.hpp>
      #include <boost/array.hpp>

      #pragma warning(pop)

### Note about Visual C++ 2005 Express Edition

Visual C++ 2005 Express Edition is distributed without Windows API headers and libraries (that is Platform SDK). These headers and libraries are required to build and use boost on Windows and can be downloaded from Microsoft web site, which also provides installation instruction. The only required component of Platform SDK is "Microsoft Windows Core SDK". After installation is completed, you will need to manually edit `vsvars32.bat` file in `%VS80COMNTOOLS%` directory (default is `C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\` ) and append full path to Platform SDK `include`, `lib` and `bin` subdirectories to `INCLUDE`, `LIB` and `PATH` environment variables that are set in this file, respectively. Alternatively, you might install Platform SDK to directory `%VC80_ROOT%\PlatformSDK` (which usually resolves to `C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK` ), because this directory name is apparently preconfigured in default installation of Visual C++ 2005 Express.

Boost build will call `vsvars32.bat` batch file (indirectly through `%VC80_ROOT%\bin\vcvars32.bat`) in order to set environment variables that are required by Visual C++ compiler and linker if `MSVCDir` enrironment variable is not set. If you set `MSVCDir` environment variable in your computer configuration or any other batch file executed before boost build is commenced, please make sure to adjust `INCLUDE` and `LIB` accordingly in order to enable Visual C++ to use Platform SDK headers and libraries.

Please note that boost does not support Visual C++ 2005 projects that are targeted on CLR platform. Currently the only supported platform for Visual C++ line of compilers is Win32. This does not preclude building GUI applications that use boost, because Win32 supports development of Windows GUI applications, even though Visual C++ 2005 Express lacks ATL, MFC or Windows application project template. If you need GUI framework that can be used with Visual C++ 2005 Express, try Win32 GUI or SmartWin++ or WTL or many others .

Revised 23 November, 2005

Copyright © Dave Abrahams 2002, Bronek Kozicki 2005.

Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at www.boost.org/LICENSE_1_0.txt)