MinGW

Last Modified:October 17, 2023

Depending on your needs and goals for running a linux for windows solution, MinGW may be a solution for you. It is more geared towards compiling applications to run under windows using tools you would normally find in a linux environment.


What is MinGW?

MinGW stands for Minimalist GNU for Windows. It provides a complete Open Source programming tool set for the development of MS-Windows applications, or more concisely, a native windows port of the GNU Compiler Collection (GCC). It contains an add-on called MSYS, which stands for Minimal SYStem. MSYS is a Bourne Shell command line interpreter system. MinGW combined with MSYS, which is a light-weight fork of Cygwin, includes a small selection of Unix tools. This collection of tools can be used to port many Open Source applications to the Windows environment

Download

MinGW can be downloaded from the project homepage at www.mingw-w64.org. It is available in a 32bit version as well as a 64bit version.

Functionality

Once the MSYS program is installed, you get the following command set:

a2p.exe autogen.exe awk.exe basename.exe bash.exe bashbug bison.exe bsdcpio.exe bsdtar.exe bunzip2.exe bzcat.exe bzcmp bzdiff bzegrep bzfgrep bzgrep bzip2.exe bzip2recover.exe bzless bzmore c2ph cat.exe chgrp.exe chmod.exe chown.exe chroot.exe cksum.exe cls clsb cmd cmp.exe columns.exe comm.exe config_data cp.exe cpan cpantest crc32 csplit.exe cut.exe cvs.exe cvsbug c_rehash d2u.exe date.exe dd.exe df.exe diff.exe diff3.exe diffstat.exe dir.exe dircolors.exe dirname.exe dos2unix.exe dprofpp du.exe echo.exe egrep.exe enc2xs env.exe error-mode.exe ex.exe expand.exe expr.exe factor.exe false.exe fgrep.exe file.exe find.exe find2perl flex.exe fmt.exe fold.exe ftp ftp.exe gawk-3.1.7.exe gawk.exe getdefs.exe grep.exe groups guile-snarf guile-tools guile.exe gunzip gzexe gzip.exe h2ph h2xs head.exe hostname.exe id.exe igawk info.exe infokey.exe install-info.exe install-info.exe.manifest install.exe install.exe.manifest instmodsh join.exe kill.exe ld2 less.exe lessecho.exe lesskey.exe libnetcfg link.exe ln.exe lndir.exe lnkcnv logname.exe ls.exe lwp-download lwp-mirror lwp-request lwp-rget lzcat.exe lzcmp lzdiff lzegrep lzfgrep lzgrep lzless lzma.exe lzmadec.exe lzmainfo.exe lzmore m4.exe mac2unix.exe make.exe makeinfo.exe md5sum.exe mkdir.exe mkfifo.exe mknod.exe mktemp.exe mount msys-1.0.dll msys-archive-2.dll msys-bz2-1.dll msys-crypt-0.dll msys-crypto-1.0.0.dll msys-expat-1.dll msys-gdbm-3.dll msys-gdbm_compat-3.dll msys-gmp-10.dll msys-guile-17.dll msys-guile-srfi-srfi-1-v-3-3.dll msys-guile-srfi-srfi-13-14-v-3-3.dll msys-guile-srfi-srfi-4-v-3-3.dll msys-guile-srfi-srfi-60-v-2-2.dll msys-guilereadline-v-17-17.dll msys-iconv-2.dll msys-intl-8.dll msys-ltdl-7.dll msys-lzma-5.dll msys-magic-1.dll msys-minires.dll msys-opts-25.dll msys-perl5_8.dll msys-popt-0.dll msys-regex-1.dll msys-ssl-1.0.0.dll msys-termcap-0.dll msys-xml2-2.dll msys-z.dll msysinfo msysmnt.exe mv.exe nice.exe nl.exe nohup.exe now.txt od.exe oldfind.exe openssl.exe paste.exe patch.exe patch.exe.manifest pathchk.exe pdftexi2dvi perl.exe perl5.8.8.exe perlbug perlcc perldoc perlivp perlld perlrebase pgawk-3.1.7.exe pgawk.exe piconv pinky.exe pl2pm pod2html pod2latex pod2man pod2readme pod2text pod2usage podchecker podselect pod_cover pr.exe printenv.exe printf.exe prove ps.exe psed pstruct ptar ptardiff ptee ptx.exe pwd.exe rcp.exe rcs2log readlink.exe rexec.exe rlogin.exe rm.exe rmdir.exe rsh.exe rsync.exe rview.exe rvim.exe s2p scandeps.pl scp.exe sdiff.exe sed.exe seq.exe sftp.exe sh.exe sha1sum.exe shasum shred.exe sleep.exe slogin.exe sort.exe splain split.exe ssh-add.exe ssh-agent.exe ssh-keygen.exe ssh-keyscan.exe ssh.exe start stat.exe stty.exe su.exe sum.exe sync.exe tac.exe tail.exe tar.exe tee.exe telnet.exe test.exe texi2dvi texi2pdf texindex.exe tftp.exe touch.exe tr.exe true.exe tsort.exe tty.exe u2d.exe umount uname.exe uncompress unexpand.exe uniq.exe unix2dos.exe unix2mac.exe unlink.exe unlzma.exe unxz.exe users.exe vdir.exe view.exe vim.exe vimdiff.exe vimtutor wc.exe which who.exe whoami.exe xargs.exe xml2ag.exe xsubpp xxd.exe xz.exe xzcat.exe xzcmp xzdec.exe xzdiff xzegrep xzfgrep xzgrep xzless xzmore yacc yes.exe ysh zcat zcmp zdiff zegrep zfgrep zforce zgrep zless zmore znew [.exe

Installation

You begin by downloading and running the MinGW Installation Manager (mingw-get).

  1. It will state This tool will guide you through the first time setup of the MinGW Installation Manager software (mingw-get) on your computer; Additionally, it will offer you the opportunity to install some other common compoents of the MinGW software distribution.

    After first time setup has been completed, you should invoke the MinGW Installation Manager directly, (either the CLI mingw-get.exe variant, or its GUI counterpart, according to your preference), when you wish to add or to remove components, or to upgrade your MinGW software installation.

    Click on the "Install" button.
    Installing MinGW 01
  2. It will ask you to specify your installation directory as well as a few installation preferences.

    Click the "Continue" button.
    Installing MinGW 02
  3. It will download the current catalog of available packages.

    Click the "Continue" button.
    Installing MinGW 03
  4. The installation manager GUI will now launch. This will show you the different packages available.
    Installing MinGW 04
  5. Click on the checkbox of the packages you want to download and choose "Mark for Installation".
    Once you have a few marked, at the top of the menu, choose "Apply Changes" under the Installation menu.
    Installing MinGW 05
  6. A window will appear showing the Schedule of Pending Actions. It will show which packages will be removed, which will be upgraded and which are new.

    Click on the "Apply" button.
    Installing MinGW 06
  7. You will see a couple of minutes of packages being sought out and downloaded.
    Installing MinGW 07
  8. After the download process is complete, you will see the Applying Scheduled Changes window. Allow this to complete as well.
    Installing MinGW 08
  9. Once all the packages have been applied to your system, you will see the text change at the top of the windows stating:

    All changes were applied successfully; you may now close this dialogue.

    You can click the "Close" button
    Installing MinGW 09
  10. The installation manager will appear with all the chosen packages showing green, for installed.

    You can now close the MinGW Installation Manager.
    Installing MinGW 10
  11. Once the installation is complete, go to the C:\MinGW\MSYS\1.0 directory and run the msys.bat file. It will launch the shell prompt.
    Installing MinGW 11
  12. And you are done.

Summary

MinGW is a package with developing and compiling applications to run under the windows environment. Many of the tools in this package are the same tools you would find on a linux system, so it can be consider a Linux for Windows solution.