CMake on Windows may emit short paths breaking Clang C++ link
The Clang compiler decides if it is running in C or C++ mode depending on its filename. On Windows, CMake emits the path of the compiler in short 8.3 form for some generators. This results in clang++ running as clang and not including the C++ standard libraries when linking.
Specifically, the default installation folder for Clang puts clang++ in C:\Program Files\LLVM\bin\clang++.exe
, and with the MinGW Makefiles generator, CMake emits this as C:\PROGRA~1\LLVM\bin\CLANG_~1.EXE
.