Home > Net >  could not find "vswhere"
could not find "vswhere"

Time:04-15

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

CodePudding user response:

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.

  • Related