Boost logo

Boost-Build :

Subject: [Boost-build] Clearing all of b2 cached values
From: Paul A. Bristow (pbristow_at_[hidden])
Date: 2016-11-15 08:42:41

I have recently been cruelly confused by my changes to Visual Studio
installed components not being reflected in b2 builds.


This was reported


C:\Program Files (x86)\Microsoft Visual Studio
14.0\VC\INCLUDE\crtdefs.h(10): fatal error C1083: Cannot open include file:
'corecrt.h': No such file or directory


But the missing file(s) had been installed.


Eventually, after some loss of hair and nearing monitorial defenestration, I
realised that to

get a completely clean build after changing the compiler features installed,
usually from an update,


using -a -clean -reconfigure do not suffice.


One must also remove the several cached versions of vcvarsall.bat at




 This might catch out users of the VS2015 update 3 and very likely update 5
when the location of many system files is slated to be changed, and thus the
macros defined by vcvarsall.bat).


The 'cached' batch files are names like this:


Proof of generating a clean copy of these files look something like this:

I:\modular-boost\libs\hello_boost\example>b2 -a toolset=msvc-14.0
CRT_IncludePath_x64 = C:\Program Files (x86)\Windows
Kits\10\Include\10.0.10240.0\ucrt using msvc
...found 1 target...
...updating 1 target...
...updated 1 target...
...found 1 target...
...updating 1 target...
...updated 1 target...
...found 1 target...
...updating 1 target...
...updated 1 target...

If you do not have a clean copy, the 'cached' version of vsvarsall.bat will
be used, with undesirable results.


I'm not sure that this is a desirable 'feature'. Should either -reconfigure
and/or -clean delete these *.cmd files?





Paul A. Bristow




Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at