Bash on Windows 10 has come pretty far. You can now run a regular Linux ELLCC compiler on it. It works so well that I’ve even been able to build ELLCC with itself on Windows. Here’s an example of installing and using it.
rich@windows-81:~$ uname -a Linux windows-81 4.4.0-43-Microsoft #1-Microsoft Wed Dec 31 14:42:53 PST 2014 x86_64 x86_64 x86_64 GNU/Linux rich@windows-81:~$ wget http://ellcc.org/releases/2017-07-27/ellcc-x86_64-linux-2017-07-27.bz2 --2017-07-28 07:25:18-- http://ellcc.org/releases/2017-07-27/ellcc-x86_64-linux-2017-07-27.bz2 Resolving ellcc.org (ellcc.org)... 98.144.109.26 Connecting to ellcc.org (ellcc.org)|98.144.109.26|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 114791914 (109M) [application/x-bzip2] Saving to: ?ellcc-x86_64-linux-2017-07-27.bz2.1? ellcc-x86_64-linux- 100%[===================>] 109.47M 9.34MB/s in 10s 2017-07-28 07:25:33 (10.5 MB/s) - ?ellcc-x86_64-linux-2017-07-27.bz2.1? saved [114791914/114791914] rich@windows-81:~$ tar xf ellcc-x86_64-linux-2017-07-27.bz2 rich@windows-81:~$ cd ellcc rich@windows-81:~/ellcc$ bin/ellcc install # Finish the installation Moving the ellcc tarball to ellcc/build for future updates. rich@windows-81:~/ellcc$ bin/ellcc # This adds the bin directory to PATH. rich@windows-81:~/ellcc$ cd .. rich@windows-81:~$ cat main.cpp #includeint main() { std::cout << "hello world" << std::endl; } rich@windows-81:~$ ecc++ -o hello main.cpp rich@windows-81:~$ ./hello hello world rich@windows-81:~$ file hello hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /home/rich/ellcc/libecc/lib/x86_64-linux/libc.so, BuildID[sha1]=b7094ed5f6a33f41794b6e0cebb2b89e023d0a3d, not stripped rich@windows-81:~$