Jon Jon - 3 months ago 78
C++ Question

Unable to build boost 1.60 with Visual Studio 2015 Pro

Platform is Windows server 2012R2. Toolsets installed are VS2015 with update 1 and Windows Driver Kit 10.

I run the "VS2015 x64 Native Tools Command Prompt", navigate to my unpacked boost_1_60_0 folder and run bootstrap.bat (have also run with an option 'msvc').

It quickly fails:

Building Boost.Build engine

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

You can try to obtain a prebuilt binary from

http://sf.net/project/showfiles.php?group_id=7586&package_id=72941

Also, you can file an issue at http://svn.boost.org
Please attach bootstrap.log in that case.


And the bootstrap.log contents:

###
### Using 'vc14' toolset.
###

C:\git\3rdpartySW\boost-build\boost_1_60_0\tools\build\src\engine>if exist bootstrap rd /S /Q bootstrap

C:\git\3rdpartySW\boost-build\boost_1_60_0\tools\build\src\engine>md bootstrap

C:\git\3rdpartySW\boost-build\boost_1_60_0\tools\build\src\engine>cl /nologo /RTC1 /Zi /MTd /Fobootstrap/ /Fdbootstrap/ -DNT -DYYDEBUG -wd4996 kernel32.lib advapi32.lib user32.lib /Febootstrap\jam0 command.c compile.c constants.c debug.c execcmd.c execnt.c filent.c frames.c function.c glob.c hash.c hdrmacro.c headers.c jam.c jambase.c jamgram.c lists.c make.c make1.c object.c option.c output.c parse.c pathnt.c pathsys.c regexp.c rules.c scan.c search.c subst.c timestamp.c variable.c modules.c strings.c filesys.c builtins.c md5.c class.c cwd.c w32_getreg.c native.c modules/set.c modules/path.c modules/regex.c modules/property-set.c modules/sequence.c modules/order.c
command.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
compile.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
constants.c
debug.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
execcmd.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
execnt.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
filent.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
frames.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
function.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
glob.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
hash.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
hdrmacro.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
headers.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
jam.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
jambase.c
jamgram.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
lists.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
make.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
make1.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
object.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
Generating Code...
Compiling...
option.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
output.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
parse.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
pathnt.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\strings.h(11): fatal error C1083: Cannot open include file: 'stddef.h': No such file or directory
pathsys.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
regexp.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
rules.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
scan.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
search.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
subst.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
timestamp.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
variable.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
modules.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
strings.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
filesys.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
builtins.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
md5.c
md5.c(55): fatal error C1083: Cannot open include file: 'string.h': No such file or directory
class.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\strings.h(11): fatal error C1083: Cannot open include file: 'stddef.h': No such file or directory
cwd.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
w32_getreg.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\jam.h(34): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
Generating Code...
Compiling...
native.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\strings.h(11): fatal error C1083: Cannot open include file: 'stddef.h': No such file or directory
set.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\strings.h(11): fatal error C1083: Cannot open include file: 'stddef.h': No such file or directory
path.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\strings.h(11): fatal error C1083: Cannot open include file: 'stddef.h': No such file or directory
regex.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\modules\../mem.h(67): fatal error C1083: Cannot open include file: 'stdlib.h': No such file or directory
property-set.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\strings.h(11): fatal error C1083: Cannot open include file: 'stddef.h': No such file or directory
sequence.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\strings.h(11): fatal error C1083: Cannot open include file: 'stddef.h': No such file or directory
order.c
c:\git\3rdpartysw\boost-build\boost_1_60_0\tools\build\src\engine\modules\../mem.h(67): fatal error C1083: Cannot open include file: 'stdlib.h': No such file or directory
Generating Code...

C:\git\3rdpartySW\boost-build\boost_1_60_0\tools\build\src\engine>exit /b 2


Any thoughts why I cannot build? This site suggests it should be very straighforward.

Jon Jon
Answer

Building on Tmayto's answer and the workaround I mentioned in my comment there, I found that ctype.h was not in the Visual Studio tree, but rather, in the Windows Kits tree. Further, it was not within the path specified by %INCLUDE%, but in 10.0.10240.0\ucrt (and 10.0.10150.0\ucrt). So, I marked 10.0.10586.0 as hidden in addition to wdf (see image below for details). Now, boost is building.

MS really needs to fix their stuff! Appears one of the scripts just blindly assumes the headers are in the "latest" or "highest-numbering" folder.

I don't know what the repercussions of doing this will be as I have not yet begun to try to compile the driver we need... it's very disconcerting to do things like this and potentially break something essential later on.

UPDATE: With WDK 10 & SDK 10 installed, the 10.0.10586.0 folder is properly populated, no need to mark it hidden as well. Though I don't know which kit deployed that folder, I suspect that the prior lack of headers within was due to having installed an earlier version.

Mark the following folders "hidden"