{"slug": "mingw", "name": "MinGW", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 3, "commenters": 12, "warners": 4, "score": 0.229, "rising": -0.98, "first": "2025-12-05", "latest": "2026-06-09", "why": "The reasons I use MinGW is because it produces better compatible binaries on Windows", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 2, "compare": 3, "warn": 5}, "spark": [0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "The reasons I use MinGW is because it produces better compatible binaries on Windows", "kind": "", "icon": false, "domain": null, "github_repo": null, "official_url": "https://www.mingw-w64.org", "pricing": "", "aliases": ["MinGW", "Mingw"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 775322322, "item_id": 48457645, "url": "https://news.ycombinator.com/item?id=48457645", "by": "chris_armstrong", "date": "2026-06-09", "version": null, "stance": "recommend", "quote": "the mingw workflow is otherwise quite good", "excerpt": "Installing via opam and using the cygwin method is supported and should be working fine (cygwin is just used for build - binaries still just link with mingw). That specific combination (ocaml + mingw) has a known problem with ocamlfind that's still awaiting a new release (see https://github.com/ocaml/ocamlfind/pull/112). ocamlfind underpins quite a bit of the package ecosystem, so this one is annoying, as the mingw w", "context": "", "use_case": "", "switched_from": "", "story": "OCaml Onboarding: Introduction to the Dune build system"}, {"id": 752695456, "item_id": 47043466, "url": "https://news.ycombinator.com/item?id=47043466", "by": "jezek2", "date": "2026-02-16", "version": null, "stance": "recommend", "quote": "The reasons I use MinGW is because it produces better compatible binaries on Windows", "excerpt": "Interestingly I've never used Visual Studio on Windows (only for a brief time for ARM based PDAs where I could experience the infamous MFC which was okay to me despite the hate). I've used Borland C++ and Watcom C/C++ back in the day and MinGW after that. Also COM was invented for interoperation between languages/compilers. Being a good citizen means to not use the inherently unstable C++ ABI directly. You can use C ", "context": "", "use_case": "", "switched_from": "", "story": "I Fixed Windows Native Development"}, {"id": 752408048, "item_id": 47025503, "url": "https://news.ycombinator.com/item?id=47025503", "by": "rdiddly", "date": "2026-02-15", "version": null, "stance": "recommend", "quote": "Now it's my little friend.", "excerpt": "From the capitalization I can tell you and the parent might not be aware it's \"minimal GNU for Windows\" which I would tend to pronounce \"min g w\" and capitalize as \"MinGW.\" I used to say ming. Now it's my little friend. Say hello to my little friend, mang.", "context": "", "use_case": "", "switched_from": "", "story": "I Fixed Windows Native Development"}, {"id": 752381856, "item_id": 47023866, "url": "https://news.ycombinator.com/item?id=47023866", "by": "jezek2", "date": "2026-02-15", "version": null, "stance": "recommend", "quote": "my programs work even on Windows 2000", "excerpt": "I use MingW without any extra libs (no msys), it just uses the ancient msvcrt.dll that is present in all Windows versions, so my programs work even on Windows 2000. Additionally the cross-compiler on Linux also produces binaries with no extra runtime requirements.", "context": "", "use_case": "Building Windows programs", "switched_from": "", "story": "I Fixed Windows Native Development"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 768005729, "item_id": 48000358, "url": "https://news.ycombinator.com/item?id=48000358", "by": "NewsaHackO", "date": "2026-05-03", "version": null, "stance": "warn", "quote": "trying to use MinGW was such a pain", "excerpt": "I guess I was more contesting that WSL is for people to get away from Windows, when it is actually the other way around; it reduces the friction between tools developed to only work on Linux and Windows users, so that the Windows user can stay using just Windows. Back when I used Windows, this was always a point of contention for installing most dev related apps, and trying to use MinGW was such a pain (WSL was broke", "context": "", "use_case": "", "switched_from": "", "story": "Windows quality update: Progress we've made since March"}, {"id": 752396321, "item_id": 47024770, "url": "https://news.ycombinator.com/item?id=47024770", "by": "delta_p_delta_x", "date": "2026-02-15", "version": null, "stance": "warn", "quote": "There are some pretty useful abstractions and libraries that MinGW doesn't work with.", "excerpt": "There are some pretty useful abstractions and libraries that MinGW doesn't work with. Biggest example is the WIL[1], which Windows kernel programmers use and is a massive improvement in ergonomics and safety when writing native Windows platform code. [1]: https://github.com/microsoft/wil", "context": "", "use_case": "", "switched_from": "", "story": "I Fixed Windows Native Development"}, {"id": 752376769, "item_id": 47023548, "url": "https://news.ycombinator.com/item?id=47023548", "by": "xvilka", "date": "2026-02-15", "version": null, "stance": "warn", "quote": "Clang is the better alternative to MinGW", "excerpt": "Clang is the better alternative to MinGW because it can use standard Windows libraries and avoids the need for additional runtime.", "context": "", "use_case": "", "switched_from": "", "story": "I Fixed Windows Native Development"}, {"id": 746188944, "item_id": 46636809, "url": "https://news.ycombinator.com/item?id=46636809", "by": "archargelod", "date": "2026-01-15", "version": null, "stance": "warn", "quote": "It's usually code compiled with Mingw that gets AV false-positives in Nim.", "excerpt": "It's usually code compiled with Mingw that gets AV false-positives in Nim. But, indeed, you can use clang or zigcc compilers instead. Nim has good support for Clang, so it works by just switching a single flag: `nim c --cc:clang main.nim` For zigcc - there is a wrapper package you can install with nimble: `nimble install zigcc` Then you can use it with: `nim c --cc:clang --clang.exe=zigcc --linker.exe=zigcc main.nim`", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: What did you find out or explore today?"}]}], "who": [], "tags": [], "use_cases": ["building windows programs", "bash on windows"], "compared": [{"slug": "cygwin", "name": "Cygwin", "co": 3, "switched_from": 0, "switched_to": 0}, {"slug": "clang", "name": "Clang", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "msvc", "name": "MSVC", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "visual-studio", "name": "Visual Studio", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=47022891", "title": "I Fixed Windows Native Development", "mentions": 6}, {"url": "https://news.ycombinator.com/item?id=46588243", "title": "Go-legacy-winxp: Compile Golang 1.24 code for Windows XP", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=48402137", "title": "OCaml Onboarding: Introduction to the Dune build system", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47980279", "title": "Windows quality update: Progress we've made since March", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47788473", "title": "RedSun: System user access on Win 11/10 and Server with the April 2026 Update", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46619464", "title": "Ask HN: What did you find out or explore today?", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {"neutral": 1, "warn": 1}, "2026-01": {"warn": 1, "compare": 1, "neutral": 1}, "2026-02": {"warn": 2, "recommend": 2, "compare": 1}, "2026-03": {}, "2026-04": {"compare": 1}, "2026-05": {"warn": 1}, "2026-06": {"recommend": 1}, "2026-07": {}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 775322322, "item_id": 48457645, "url": "https://news.ycombinator.com/item?id=48457645", "by": "chris_armstrong", "date": "2026-06-09", "version": null, "stance": "recommend", "quote": "the mingw workflow is otherwise quite good", "excerpt": "Installing via opam and using the cygwin method is supported and should be working fine (cygwin is just used for build - binaries still just link with mingw). That specific combination (ocaml + mingw) has a known problem with ocamlfind that's still awaiting a new release (see https://github.com/ocaml/ocamlfind/pull/112). ocamlfind underpins quite a bit of the package ecosystem, so this one is annoying, as the mingw w", "context": "", "use_case": "", "switched_from": "", "story": "OCaml Onboarding: Introduction to the Dune build system"}, {"id": 768005729, "item_id": 48000358, "url": "https://news.ycombinator.com/item?id=48000358", "by": "NewsaHackO", "date": "2026-05-03", "version": null, "stance": "warn", "quote": "trying to use MinGW was such a pain", "excerpt": "I guess I was more contesting that WSL is for people to get away from Windows, when it is actually the other way around; it reduces the friction between tools developed to only work on Linux and Windows users, so that the Windows user can stay using just Windows. Back when I used Windows, this was always a point of contention for installing most dev related apps, and trying to use MinGW was such a pain (WSL was broke", "context": "", "use_case": "", "switched_from": "", "story": "Windows quality update: Progress we've made since March"}, {"id": 764849779, "item_id": 47803111, "url": "https://news.ycombinator.com/item?id=47803111", "by": "delta_p_delta_x", "date": "2026-04-16", "version": null, "stance": "compare", "quote": "if you have MinGW, this exact command-line invocation will probably work correctly", "excerpt": "This is a misrepresentation. This command-line is the compiler invocation, and is not the equivalent to 'make' on Windows. The actual equivalent on Linux, in the same order of the arguments to cl.exe would be: cl /std:c++17 /EHsc /W4 /O2 /DUNICODE /D_UNICODE /wd4005 /Fe:RedSun.exe RedSun.cpp advapi32.lib ole32.lib user32.lib g++ -std=c++17 -Wall -O3 -DUNICODE -D_UNICODE -Wno-builtin-macro-redefined -o RedSun.exe RedS", "context": "", "use_case": "", "switched_from": "", "story": "RedSun: System user access on Win 11/10 and Server with the April 2026 Update"}, {"id": 752695456, "item_id": 47043466, "url": "https://news.ycombinator.com/item?id=47043466", "by": "jezek2", "date": "2026-02-16", "version": null, "stance": "recommend", "quote": "The reasons I use MinGW is because it produces better compatible binaries on Windows", "excerpt": "Interestingly I've never used Visual Studio on Windows (only for a brief time for ARM based PDAs where I could experience the infamous MFC which was okay to me despite the hate). I've used Borland C++ and Watcom C/C++ back in the day and MinGW after that. Also COM was invented for interoperation between languages/compilers. Being a good citizen means to not use the inherently unstable C++ ABI directly. You can use C ", "context": "", "use_case": "", "switched_from": "", "story": "I Fixed Windows Native Development"}, {"id": 752451602, "item_id": 47028225, "url": "https://news.ycombinator.com/item?id=47028225", "by": "okanat", "date": "2026-02-15", "version": null, "stance": "compare", "quote": "we wouldn't probably need Mingw to build cross-platform apps", "excerpt": "I do appreciate it as a daily user of MSYS2. However the bigger thing that enabled them is indeed Cygwin project since it unlocked the path to build things that are using strict Unix tooling. autoconf, Make, bash etc cannot run under a pure Windows environment. They are too dependent to the underlying system being a Unix. To use pacman, bash and make in MSYS2, you need msys-2.0.dll. Even they cite Cygwin's URL in the", "context": "", "use_case": "", "switched_from": "", "story": "I Fixed Windows Native Development"}, {"id": 752408048, "item_id": 47025503, "url": "https://news.ycombinator.com/item?id=47025503", "by": "rdiddly", "date": "2026-02-15", "version": null, "stance": "recommend", "quote": "Now it's my little friend.", "excerpt": "From the capitalization I can tell you and the parent might not be aware it's \"minimal GNU for Windows\" which I would tend to pronounce \"min g w\" and capitalize as \"MinGW.\" I used to say ming. Now it's my little friend. Say hello to my little friend, mang.", "context": "", "use_case": "", "switched_from": "", "story": "I Fixed Windows Native Development"}, {"id": 752396321, "item_id": 47024770, "url": "https://news.ycombinator.com/item?id=47024770", "by": "delta_p_delta_x", "date": "2026-02-15", "version": null, "stance": "warn", "quote": "There are some pretty useful abstractions and libraries that MinGW doesn't work with.", "excerpt": "There are some pretty useful abstractions and libraries that MinGW doesn't work with. Biggest example is the WIL[1], which Windows kernel programmers use and is a massive improvement in ergonomics and safety when writing native Windows platform code. [1]: https://github.com/microsoft/wil", "context": "", "use_case": "", "switched_from": "", "story": "I Fixed Windows Native Development"}, {"id": 752381856, "item_id": 47023866, "url": "https://news.ycombinator.com/item?id=47023866", "by": "jezek2", "date": "2026-02-15", "version": null, "stance": "recommend", "quote": "my programs work even on Windows 2000", "excerpt": "I use MingW without any extra libs (no msys), it just uses the ancient msvcrt.dll that is present in all Windows versions, so my programs work even on Windows 2000. Additionally the cross-compiler on Linux also produces binaries with no extra runtime requirements.", "context": "", "use_case": "Building Windows programs", "switched_from": "", "story": "I Fixed Windows Native Development"}, {"id": 752376769, "item_id": 47023548, "url": "https://news.ycombinator.com/item?id=47023548", "by": "xvilka", "date": "2026-02-15", "version": null, "stance": "warn", "quote": "Clang is the better alternative to MinGW", "excerpt": "Clang is the better alternative to MinGW because it can use standard Windows libraries and avoids the need for additional runtime.", "context": "", "use_case": "", "switched_from": "", "story": "I Fixed Windows Native Development"}, {"id": 746283794, "item_id": 46642737, "url": "https://news.ycombinator.com/item?id=46642737", "by": "abbeyj", "date": "2026-01-15", "version": null, "stance": "neutral", "quote": "Or you could install and old copy of Cygwin or MinGW.", "excerpt": "It depends on what you want. If you want to install an old copy of Visual Studio from 20 years ago then you should be able to write a program and compile it and have that work on XP. But that comes with limitations. You're not going to be able to use even C++11 and will be stuck with C++03, or maybe even C++98. If that's acceptable to you then it can work. But if you want to compile something that somebody else wrote", "context": "", "use_case": "", "switched_from": "", "story": "Go-legacy-winxp: Compile Golang 1.24 code for Windows XP"}, {"id": 746271793, "item_id": 46641987, "url": "https://news.ycombinator.com/item?id=46641987", "by": "unleaded", "date": "2026-01-15", "version": null, "stance": "compare", "quote": "I don't know if it's any better or worse than MinGW practically", "excerpt": "I found out the other day you can use modern clang-cl with the MSVC6 headers and it just works. you can download them from here https://github.com/itsmattkc/MSVC600 or just copy it from an install if you have one handy. then run (something like) this: clang-cl /winsysroot:\"\" /DWINVER=0x0400 /D_WIN32_WINNT=0x0400 -m32 /GS- -march=i586 -Wno-nonportable-include-path /imsvc\"C:\\MSVC6\\VC98\\Include\" hello.c -fuse-ld=lld-lin", "context": "", "use_case": "", "switched_from": "", "story": "Go-legacy-winxp: Compile Golang 1.24 code for Windows XP"}, {"id": 746188944, "item_id": 46636809, "url": "https://news.ycombinator.com/item?id=46636809", "by": "archargelod", "date": "2026-01-15", "version": null, "stance": "warn", "quote": "It's usually code compiled with Mingw that gets AV false-positives in Nim.", "excerpt": "It's usually code compiled with Mingw that gets AV false-positives in Nim. But, indeed, you can use clang or zigcc compilers instead. Nim has good support for Clang, so it works by just switching a single flag: `nim c --cc:clang main.nim` For zigcc - there is a wrapper package you can install with nimble: `nimble install zigcc` Then you can use it with: `nim c --cc:clang --clang.exe=zigcc --linker.exe=zigcc main.nim`", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: What did you find out or explore today?"}, {"id": 739993140, "item_id": 46249571, "url": "https://news.ycombinator.com/item?id=46249571", "by": "FieryMechanic", "date": "2025-12-12", "version": null, "stance": "warn", "quote": "The biggest issue I ran into was MinGW and GCC implement the FileSystem library differently", "excerpt": "A lot of the modern tooling feels like a rube goldberg machine when it goes wrong. If you are forced (like I am) because of byzantine corporate rules to use older version of said tools, it is extremely painful. Don't get me started on stuff like babel, jest, ts-jest and all that gubbings. AI been a godsend because I can ask Claude what I want to do. I use vendor directory in my C++ project and and git submodules and ", "context": "", "use_case": "", "switched_from": "", "story": "The Tor Project is switching to Rust"}, {"id": 738533426, "item_id": 46158339, "url": "https://news.ycombinator.com/item?id=46158339", "by": "ckbkr10", "date": "2025-12-05", "version": null, "stance": "neutral", "quote": "All I use is basically Firefox and a MinGW to have a bash", "excerpt": "As another person that spends the whole day in the terminal. It's sad to see there is no Windows version. I do not understand why I would need gpu acceleration for a terminal, but I would still try it. I use a company managed/provided machine that runs windows, I do not have to bother maintaining it. All I use is basically Firefox and a MinGW to have a bash", "context": "", "use_case": "Bash on Windows", "switched_from": "", "story": "Ghostty is now non-profit"}]}