想在Windows系统上获得接近Linux的开发体验?
对于需要在Windows环境下进行类Unix开发的工程师来说,Cygwin和MinGW-w64是绕不开的两个成熟方案。它们的技术路线截然不同:Cygwin通过一个名为cygwin1.dll的兼容层来模拟POSIX接口,提供了一套完整的类Unix运行时环境;而MinGW-w64则直接生成原生的Windows可执行文件,不依赖额外的DLL,部署起来更轻便,运行效率也更高,因此它更适合现代Windows应用的开发与分发。
2026虚拟币交易平台推荐:
- 欧易(OKX)交易平台(>>>进入官网<<<)(下载OKX的Android安装包)
- 币安(Binance)交易平台(>>>进入官网<<<)(下载币安Android安装包)
一、安装Cygwin
Cygwin的核心就是那个cygwin1.dll,它在Windows内部构建了一个稳定可靠的类Unix环境。安装后,你会获得熟悉的bash命令行、GCC编译器、Vim编辑器以及Make构建工具等主流开发组件。
第一步,访问Cygwin官网,根据你的系统下载对应的安装程序:64位系统请选择setup-x86_64.exe,32位系统则用setup-x86.exe。
第二步,运行安装程序,选择【Install from Internet】,然后点击下一步。
第三步,设置一个本地软件包的缓存路径,比如C:\cygwin64\packages,继续下一步。
第四步,根目录通常保持默认的C:\cygwin64即可,点击下一步。
第五步,网络连接方式选择【Direct connection】,再次下一步。
第六步,从镜像站点列表中任选一个(例如北美常用的镜像),点击下一步。
第七步,这是关键步骤:在软件包列表中,展开【Devel】分类,然后勾选gcc-g++、make、gdb、git、vim这些核心开发工具。如果还需要SSH远程访问功能,别忘了在【Net】分类下勾选openssh。
第八步,点击下一步开始下载和安装。完成后,勾选【Create icon on Desktop】以便后续快速启动,最后点击完成。
二、启动并配置Cygwin终端
安装完成后,双击桌面图标就能进入熟悉的bash命令行界面了。你会发现,它的路径规范、文件权限模型乃至操作逻辑,都高度还原了Linux的使用习惯。
首次运行时,系统会自动为你创建用户主目录,路径格式类似于/cygdrive/c/Users/YourName/home/YourName。
接下来,运行vim .bashrc命令,在文件末尾添加一些常用的环境变量配置,例如export PATH="/usr/local/bin:$PATH"。
保存后,执行source .bashrc让新配置立即生效。
最后,输入gcc --version测试一下,如果成功显示版本信息,那就恭喜你,C语言编译环境已经准备就绪了。
三、安装MinGW-w64(现代Windows开发推荐方案)
如果说Cygwin是“模拟”,那么MinGW-w64就是“原生”。它不引入任何兼容层DLL,直接输出标准的Windows PE格式程序,发布时无需捆绑额外运行库,这使得它在独立部署和跨平台协作场景中优势明显。目前,最成熟的一体化集成环境是MSYS2,它内置了强大的pacman包管理器和完整的开发工具链,并支持UCRT、MINGW64、CLANG64等多种编译目标。
第一步,访问MSYS2官网,下载最新版的msys2-x86_64-*.exe安装包。
第二步,运行安装程序。安装路径建议设置为纯英文且不含空格的目录,例如C:\msys64。勾选【Run MSYS2 now】后,点击下一步。
第三步,首次启动后,在终端中输入pacman -Syu来更新基础系统。如果提示需要重启,请关闭当前窗口,然后从开始菜单重新打开【UCRT64】终端(这是为Windows 10/11优化的首选环境)。
第四步,在UCRT64终端中,再次运行pacman -Su以完成剩余更新。
第五步,安装核心开发套件。在UCRT64终端中执行命令:pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain。
第六步,这条命令会为你安装GCC、G++、Make、CMake、GDB、pkg-config等全套开发工具。安装完成后,可执行文件默认位于/mingw64/bin/目录下。
四、用MinGW-w64编译第一个C程序
在UCRT64环境下,编译器采用了x86_64-w64-mingw32-前缀,这确保了程序会链接Windows的UCRT运行时库。因此,生成的程序在Windows 10/11及部分旧版系统中都能保持良好的兼容性。
第一步,在UCRT64终端中执行:mkdir ~/hello && cd ~/hello,创建一个项目目录并进入。
第二步,创建源文件:echo(此处原文不完整,为保持信息完整,此处保留原文未完成语句。实际使用时,应为类似echo “#include 的完整命令)。
