That environment variable is the first thing clang will look for, so by pointing it at the base of our fake installation, it will find it right away.Now, if you’re like me, you want to be able to completely isolate Visual Studio’s compiler and LLVM’s compiler, and you want to be able to call whichever one you want at any time and not have to worry about it. You don’t want to have to set environment variables, or have a “state” that you switch between by calling environment-contaminating batch files like vcvarsall.bat and the like..So the way I like to wrap this whole clang handholding up is to have a clang++.bat file that does everything wrapped inside a setlocal so it doesn’t contaminate the wider execution environment. Mine looks like this: