Software development on Windows is always interesting. This page documents some platform-specific issues people have encountered, and ways to resolve them.
Windows 10 “helpfully” redirects the “python” executable in PATH to its bundled one, instead of any you may have installed separately (such as the one provided by Visual Studio). This breaks many python scripts.
To fix this:
python
and python3
%USERPROFILE%\AppData\Local\Microsoft\WindowsApps
from your user-specific PATH
if presentPATH
. Appropriately adjust the path to the right version.
C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64
for python
itselfC:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\Scripts
for pip
Some Python scripts used by optional features of specregex require the pyyaml
python pacakge to be installed. Running pip install pyyaml
in the appropriate environment will achieve this.
C:\Program Files\Git
has been added to PATH
(git-bash.exe
lives here)C:\Program Files\Git\cmd
has been added to PATH
(git.exe
lives here)Your home directory defaults to C:\Users\<Your name here>\
.
CMake works the same on Windows as it does on Linux.
C:\Program Files\CMake\bin
has been added to PATH
. The installer has a tick-box to do this for you, but any open shells must be re-started to see the changes.link.exe
installed by Git from /Git/usr/bin/link.exe
, since it name-collides with the Windows linker. It is not straightforward to ensure that the Windows one always appears first in PATH
, so we suggest just deleting link.exe
(which is not a linker).
lld-link.exe
is not a viable workaround because it discards Windows debug information.link.exe
is not a dependency of ln
, so this does not hinder the creation of symlinks.Make sure the /bin
folder can be found in PATH
.
If you choose to use the Ninja cmake generator, do not use versions later than 1.10.0. They introduce an as-yet-unfixed bug that causes it to crash in some circumstances.
Instead, either: - Use the JOM CMake generator. It’s functionally equivalent to GNU make on Linux, so may feel familiar to users with experience there. - Use the Visual Studio CMake generator - Use Ninja 1.9.0