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 

 

  C:\Users\The_User\AppData\Local\Temp

 

 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:

b2_msvc_14.0_vcvarsall_amd64.cmd
...
 

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...
msvc.write-setup-script C:\Users\paula\AppData\Local\Temp\b2_msvc_14.0_vcvarsall_x86.cmd
...updated 1 target...
...found 1 target...
...updating 1 target...
msvc.write-setup-script C:\Users\paula\AppData\Local\Temp\b2_msvc_14.0_vcvarsall_amd64.cmd
...updated 1 target...
...found 1 target...
...updating 1 target...
msvc.write-setup-script C:\Users\paula\AppData\Local\Temp\b2_msvc_14.0_vcvarsall_x86_arm.cmd
...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

 

 

Paul A. Bristow