Here's the error I'm getting now from a perfectly clean checkout. Unfortunately I get this same error trying to run "bjam --clean".


**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.0
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'
C:/90cf73ea/tools/boost_install/.\boost-install-dirs.jam:15: in boost-install-dirs.includedir
ERROR: rule "package.paths" unknown in module "boost-install-dirs".
C:/90cf73ea/libs/headers/build/../../../tools/boost_install\boost-install.jam:721: in boost-install.install-cmake-config
libs\headers\build\Jamfile:87: in modules.load
C:/90cf73ea/tools/build/src/build\project.jam:375: in load-jamfile
C:/90cf73ea/tools/build/src/build\project.jam:64: in load
C:/90cf73ea/tools/build/src/build\project.jam:89: in load-used-projects
C:/90cf73ea/tools/build/src/build\project.jam:75: in load
C:/90cf73ea/tools/build/src/build\project.jam:145: in project.find
C:/90cf73ea/tools/build/src\build-system.jam:618: in load
C:\90cf73ea\tools\build\src/kernel\modules.jam:295: in import
C:\90cf73ea\tools\build\src/kernel/bootstrap.jam:139: in boost-build
C:\90cf73ea\boost-build.jam:17: in module scope


On Tue, Jan 15, 2019 at 2:15 AM Paul Bristow <paul.a.bristow@outlook.com> wrote:

 

 

From: Ben Ernst [mailto:ben.ernst.optimatics@gmail.com]
Sent: 13 January 2019 10:18
To: Boost.Build developer's and user's list
Cc: Robert
Subject: Re: [Boost-build] Fwd: Error building Boost: "no best alternative for headers"

 

Robert, thank you for your suggestions. I too need to use the mklink /D trick to shorten the path names.

 

On Sat, Jan 12, 2019 at 2:39 AM Robert via Boost-build <boost-build@lists.boost.org> wrote:

On 1/8/2019 11:01 PM, Ben Ernst via Boost-build wrote:
> I am completely unable to build Boost libraries. I have been building on
> this same computer for many years, so this issue is confounding to me.
> I'm posting here in the hope that this peculiar error message might ring
> a bell with someone.
>
> After bootstrapping, when executing "b2.exe", before getting into the
> actual build (which fails), these error messages are repeated multiple
> times:
>
>     error: No best alternative for ./headers
>          next alternative: required properties: (empty)
>              matched
>          next alternative: required properties: (empty)
>              matched
>
>
> I have attached console output from the offending build.
>
> My actual command line is:
>
>     .\b2 -j8 toolset=msvc-14.1 --build-type=minimal --without-mpi
>     --without-python address-model=32 link=shared threading=multi
>     runtime-link=shared windows-api=desktop stage
>

Hello Ben,

I have not observed this error before.  However, I always surround the
toolset value with quotes.  AFAIK, it is not supposed to matter, but ...

toolset="msvc-14.1"

Additionally, I suppose it is possible the b2 .cmd files located inside
the %localappdata%\temp directory have inconsistent content.  The file
names I see on mine for msvc-14.1 are named:

b2_msvc_14.1_vcvars32_.cmd
b2_msvc_14.1_vcvarsx86_amd64_.cmd

With Visual Studio 2017, the paths are quite long.  What I have to do is
use a very short starting point with the mklink /D option (e.g. C:\v7).
The C:\v7 starts at:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise

I create a build forum post with more details using the Windows Intel
compiler back on June 23, 2017, 11:47 am.  It might be a good reference.
  I hope this helps.

Bear in mind that you can get b2/bjam in a confused state.  It bit me ;-)

 

This link (see the later posts especially) give some hints to escape from this to a clean state.

 

https://stackoverflow.com/questions/5709105/how-do-i-force-bjam-in-boost-to-build-cleanly-and-consistently

 

I think new releases do a better job with ‘-a- and ‘--clean’ but it may still be useful to know this.

 

You can always delete the b2 command files in %localappdata%\temp directory to force their regeneration.  And you also can (and may need to recover disk space) to delete any of all the files in bin.v2.

 

HTH

 

Paul