'could not find "vswhere"

I'm trying to install boost to run PyGMO properly. However, after I unpack it in a directory (did not use git).

After running bootstrap vc142 (I'm using VScode V1.63.2 and I'm on windows). I'm getting this error:

Building Boost.Build engine
LOCALAPPDATA=C:\Users\wojci\AppData\Local
could not find "vswhere"
Call_If_Exists "..\bin\VCVARS32.BAT"
###
### Using 'msvc' toolset.
###

Followed by:

C:\Program Files\boost\boost_1_78_0\tools\build\src\engine>dir *.exe
 Volume in drive C has no label.
C:\Program Files\boost\boost_1_78_0\tools\build\src\engine>copy /b .\b2.exe .\bjam.exe
The system cannot find the file specified.

Failed to build Boost.Build engine.

Does anyone know how to fix/work around this?

Thank you in advance



Solution 1:[1]

I found the solution here (git)

Prerequisites:

  1. First download and install MinGW installer mingw-w64-install.exe (I fot it from Sourceforge) and make sure you use x86_64 architecture.

  2. Then download the boost file (boost_1_78_0.zip source)

  3. Open and run cmd as admin

  4. Enter the following command to link the MinFW folder in C:\

mklink /J C:\MinGW "C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64"
  1. add MinGW to the system PATH:
set PATH=%PATH%;C:\MinGW\bin
setx /M PATH "%PATH%"
  1. Check if you have at least g++ version of 8.1.0
g++ --version

Methodology to install boost:

  1. Navigate to the install folder created and unzip and extract the boost_1_78_0.zip file into this folder
  2. In the CMD navigated to the boost folder
cd C:\install\boost_1_78_0
  1. Type the following to make directories for building and installing boost
mkdir C:\boost-build
mkdir C:\install\boost_1_78_0\boost-build
mkdir C:\boost
  1. Setup boost.build (second line prepers b2, the third line builds boost.build with b2, and the fourth line adds C:\boost-build\bin to your session PATH variable)
cd C:\install\boost_1_78_0\tools\build
bootstrap.bat gcc
b2 --prefix="C:\boost-build" install
set PATH=%PATH%;C:\boost-build\bin
  1. building boost (first line navigateds to boost directory, second line builds boost with b2 this can take a while)
cd C:\install\boost_1_78_0
b2 --build-dir="C:\install\boost_1_78_0\build" --build-type=complete --prefix="C:\boost" toolset=gcc install

Extra notes:

This should work for boost 1.68.0 too and might work for other version just replace 1_78_0 with 1_68_0.

At the end you should have three lines that look something like this:

...failed updating 72 targets...
...skipped 292 targets...
...updated 22164 targets...

It's totally fine if you have some failed and skipped files.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1