如何在Windows上安装和使用Cygwin或MinGW【开发环境】
发布时间 - 2026-01-01 00:00:00 点击率:次Cygwin通过cygwin1.dll模拟POSIX层,MinGW-w64则生成原生Windows可执行文件;前者适合类Linux环境开发,后者适合分发独立程序。
如果您希望在Windows系统上获得类Unix的开发环境,Cygwin和MinGW是两个常用选择。它们分别通过不同机制提供POSIX兼容性与原生Windows API调用支持。以下是安装与使用这两种工具的具体步骤:
一、安装Cygwin
Cygwin通过动态链接库cygwin1.dll模拟POSIX层,使Linux风格的命令行工具和开发工具能在Windows上运行。安装过程需下载官方安装程序并按需选择软件包。
1、访问Cygwin官网https://www.cygwin.com/,点击“Install Cygwin”下载setup-x86_64.exe(64位系统)或setup-x86.exe(32位系统)。
2、双击运行安装程序,选择“Install from Internet”,点击“Next”。
3、指定本地软件包存放目录(如C:\cygwin64\packages),点击“Next”。
4、选择根安装目录(默认C:\cygwin64),点击“Next”。
5、选择网络连接方式,保持默认“Direct connection”,点击“Next”。
6、在镜像站点列表中任选一个(如http://cygwin.mirror.constant.com),点击“Next”。
7、在包选择界面,展开“Devel”类别,勾选gcc-g++、make、gdb、git、vim等核心开发组件;可同时勾选“Net”下的openssh以启用SSH功能。
8、点击“Next”开始下载并安装所选包,完成后勾选“Create icon on Desktop”,点击“Finish”。
二、启动并配置Cygwin终端
安装完成后,Cygwin提供bash shell环境,其路径解析、权限模型和行为接近Linux。首次运行时需初始化用户账户并设置环境变量。
1、双击桌面Cygwin Terminal图标,启动bash会话。
2、首次运行时自动创建当前Windows用户的Cygwin主目录(如/cygdrive/c/Users/YourName/home/YourName)。
3、编辑~/.bashrc文件:运行vim ~/.bashrc,在末尾添加别名或PATH扩展,例如:export PATH="/usr/local/bin:$PATH"。
4、执行source ~/.bashrc使配置立即生效。
5、验证GCC安装:输入gcc --version,确认输出版本信息。
三、安装MinGW-w64(推荐替代方案)
MinGW-w64不依赖第三方DLL,直接编译生成原生Windows PE格式可执行文件,更适合需要分发独立二进制程序的场景。MSYS2是其主流集成分发版,包含包管理器pacman和完整开发工具链。
1、访问http
s://www.msys2.org/,下载最新msys2-x86_64-*.exe安装程序。
2、运行安装程序,选择安装路径(建议不含空格和中文,如C:\msys64),勾选“Run MSYS2 now”,点击“Next”。
3、首次启动后,执行pacman -Syu更新基础系统;若提示重启终端,关闭后重新运行MSYS2 UCRT64(推荐用于现代开发)。
4、再次运行pacman -Su完成剩余更新。
5、安装开发工具集:在UCRT64终端中运行pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain。
6、该命令将安装gcc、g++、make、cmake、gdb、pkg-config等,默认位于/mingw64/bin/目录下。
四、使用MinGW-w64编译C程序
MinGW-w64工具链通过前缀区分目标平台,UCRT64环境使用x86_64-w64-mingw32-系列命令,确保链接正确的运行时库。
1、在UCRT64终端中创建测试目录:mkdir ~/hello && cd ~/hello。
2、创建源文件:echo '#include
3、使用MinGW-w64 GCC编译:x86_64-w64-mingw32-gcc -o hello.exe hello.c。
4、运行生成的可执行文件:./hello.exe,观察控制台输出。
5、检查依赖:运行ntldd hello.exe,确认仅链接ucrtbase.dll等系统级DLL,无第三方运行时依赖。
五、切换与调用不同环境的Shell
MSYS2提供多个子系统终端,各自隔离环境变量与工具路径。正确选择终端类型可避免工具链冲突或路径解析异常。
1、UCRT64(推荐):对应mingw-w64-ucrt-x86_64-*工具链,使用UCRT运行时,适用于新项目开发。
2、MINGW64:对应mingw-w64-x86_64-*工具链,使用MSVCRT运行时,兼容旧版Windows XP(已不推荐)。
3、MSYS2:提供POSIX*层,含autoconf/automake等构建工具,适合编译依赖configure脚本的开源项目。
4、从Windows命令行直接调用MinGW工具:将C:\msys64\mingw64\bin加入系统PATH,之后可在cmd或PowerShell中直接使用gcc命令(注意此操作可能覆盖其他GCC安装)。
5、验证当前终端类型:在任意MSYS2终端中运行uname -m && echo $MSYSTEM,输出x86_64与UCRT64表示处于正确环境。
# linux
# git
# windows
# internet
# 工具
# ai
# unix
# 环境变量
# win
# windows系统
# bash
# echo
# include
# printf
# vim
# http
# https
# ssh
# 首次
# 安装程序
# 勾选
# 开发工具
# 可执行文件
# 软件包
# 双击
# 第三方
# 命令行
# 如果您
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
Laravel怎么实现模型属性的自动加密
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
详解Android中Activity的四大启动模式实验简述
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
网站页面设计需要考虑到这些问题
深圳网站制作平台,深圳市做网站好的公司有哪些?
无锡营销型网站制作公司,无锡网选车牌流程?
绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信
iOS发送验证码倒计时应用
佛山网站制作系统,佛山企业变更地址网上办理步骤?
微信小程序 wx.uploadFile无法上传解决办法
利用vue写todolist单页应用
如何在腾讯云服务器上快速搭建个人网站?
为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】
Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践
Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
制作旅游网站html,怎样注册旅游网站?
Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程
标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析
作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】
html5audio标签播放结束怎么触发事件_onended回调方法【教程】
清除minerd进程的简单方法
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
linux top下的 minerd 木马清除方法
如何快速上传自定义模板至建站之星?
bing浏览器学术搜索入口_bing学术文献检索地址
Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
如何有效防御Web建站篡改攻击?
如何在万网主机上快速搭建网站?
html5的keygen标签为什么废弃_替代方案说明【解答】
Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
如何彻底删除建站之星生成的Banner?
标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南
如何在不使用负向后查找的情况下匹配特定条件前的换行符
Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】
JavaScript如何实现错误处理_try...catch如何捕获异常?
网站优化排名时,需要考虑哪些问题呢?
Python制作简易注册登录系统
Claude怎样写结构化提示词_Claude结构化提示词写法【教程】
如何在宝塔面板创建新站点?
如何快速生成专业多端适配建站电话?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?

