Skip to content

Use the Microsoft C++ toolset from Bash (vcvarsall.bat -> vcvarsall.sh)

License

Notifications You must be signed in to change notification settings

nathan818fr/vcvars-bash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

vcvars-bash

Use the Microsoft C++ toolset from Bash!

vcvarsall.sh

This script load MSVC environment variables using vcvarsall.bat and exports them. It is intended to be evaluated (by Bash or any other POSIX-compatible shell, since it writes a list of export commands to stdout).

Usage: eval "$(vcvarsall.sh [vcvarsall.bat arguments])"

See Microsoft vcvarsall.bat syntax for vcvarsall.bat arguments documentation.

Example:

eval "$(./vcvarsall.sh x64)"
cmake -S ..  -B build -G "NMake Makefiles"
cmake --build build --config Release

vcvarsrun.sh

Like vcvarsall.sh, but runs a command instead of exporting variables.

Usage: vcvarsrun.sh [vcvarsall.bat arguments] -- command [arguments...]

Example:

./vcvarsrun.sh x64 -- cl /nologo /EHsc /Fe:hello.exe hello.cpp
./vcvarsrun.sh x64 -- ./my_build_script.sh

Compatibility

These scripts are designed to run on Windows with Bash. They work with:

  • Git Bash
  • WSL
  • MSYS2
  • Cygwin

Configuration (optional)

To work, these scripts must locate vcvarsall.bat.
By default, it uses vswhere.exe (installed with Visual Studio) to automatically find the latest Visual Studio installation.
You can override this behavior by setting the VSINSTALLDIR environment variable (e.g. VSINSTALLDIR='C:\Program Files\Microsoft Visual Studio\2022\Community').

About

Use the Microsoft C++ toolset from Bash (vcvarsall.bat -> vcvarsall.sh)

Topics

Resources

License

Stars

Watchers

Forks

Languages