news 2026/2/20 3:03:51

【C++】Scoop 包管理器与 MinGW 工具链详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【C++】Scoop 包管理器与 MinGW 工具链详解

Scoop 包管理器与 MinGW 工具链详解

📦 什么是 Scoop,Scoop的历史?

Scoop 是 Windows 平台上的命令行包管理器,类似于 Linux 的aptyum或 macOS 的Homebrew。它让 Windows 用户可以通过简单的命令行操作来安装、更新和管理软件。

Scoop 诞生于 2013 年左右,是 Windows 平台上一款“类 Homebrew”的命令行包管理器。

它的出现背景很简单:当时 Windows 用户想装开发工具得挨个去官网下载、手动改 PATH,既繁琐又容易把系统目录弄脏;而 Linux 有 apt/yum、macOS 有 Homebrew,Windows 却没有趁手的同类工具。作者 Luke Sampson 于是用 PowerShell 写了 Scoop,目标是“一条命令就把软件干净地装进用户目录,卸载时不留残渣”。

2013–2015 年:

  • 项目放在 GitHub,早期只维护一个主 bucket(软件仓库),以开源/命令行小工具为主。
  • 采用“portable 优先”策略:尽量下载压缩包,解压后把可执行文件软链到 /scoop/shims,避免写注册表、不写系统目录,因此无需管理员权限即可安装。

2016–2018 年:

  • 社区开始大量贡献“bucket”,出现 extras、versions、java、games 等独立仓库,软件数量从几百增长到几千。
  • 引入自动更新机制(checkver + autoupdate 脚本),上游一发新版,官方仓库几小时内就能自动生成新 manifest。
  • 国内用户群体扩大,知乎、CSDN 出现大量安装教程,“Windows 上的 Homebrew”这一口号被普遍接受。

2019–2020 年:

  • 核心代码逐渐模块化,支持多架构(32/64 bit)、多语言运行环境(nodejs、python、ruby 等)。
  • 微软官方推出 winget 预览版,外界曾担心 Scoop 会被“招安”或边缘化,但作者和核心维护者仍保持独立更新,继续走“用户空间、零权限、绿色安装”路线。

2021 年至今:

  • 项目进入“半社区自治”状态:Luke Sampson 淡出日常维护,由 lukesampson/scoop 组织里几位核心成员合码、Review PR。
  • 功能迭代放慢,没有官方路线图,但 bucket 生态继续膨胀,仅官方主仓库就超过 1 000 款软件,extras 仓库更达 4 000+。
  • 国内镜像源、一键换源脚本、GUI 前端(如 ScoopGUI)相继出现,进一步降低了上手门槛。

一句话总结:

Scoop 从 2013 年个人 side-project 起步,凭借“不写系统目录、无需管理员、卸载干净”的差异化定位,在 Windows 包管理圈子里站稳了脚;虽然后来 winget 入局,但它仍以灵活、轻量、社区驱动的方式继续存活并迭代。

Scoop 的核心优势

  1. 自动化安装:一条命令完成下载、安装、配置
  2. 自动配置环境变量:无需手动设置 PATH
  3. 版本管理:轻松切换软件版本
  4. 干净卸载:卸载时自动清理相关文件
  5. 集中管理:所有软件统一管理,一目了然

安装 Scoop

# 1. 打开 PowerShell(以普通用户权限即可,不需要管理员)# 2. 设置执行策略(如果遇到权限问题)Set-ExecutionPolicyRemoteSigned-Scope CurrentUser# 3. 安装 Scoopirmget.scoop.sh|iex

Scoop 常用命令

# 安装软件scoop install <软件名># 卸载软件scoop uninstall <软件名># 更新软件scoop update <软件名># 更新所有软件scoop update*# 查看已安装软件scoop list# 搜索软件scoop search <关键词># 查看软件信息scoop info <软件名>

实际应用示例

使用 Scoop 安装开发工具链:

# 安装 MinGW(包含 GCC 编译器)scoop install mingw# 安装 CMake(构建系统生成器)scoop install cmake# 安装 Git(版本控制)scoop install git# 验证安装gcc--version cmake--version git--version

🔧 MinGW、GCC 和 Makefile 的关系

基本概念

GCC (GNU Compiler Collection)
  • 定义:GNU 编译器集合,包含 C、C++、Fortran 等多种语言的编译器
  • 作用:将源代码编译成可执行文件或目标文件
  • 平台:主要在 Linux/Unix 系统上使用
MinGW (Minimalist GNU for Windows)
  • 定义:Windows 平台上的 GCC 移植版本
  • 作用:在 Windows 上提供 GCC 工具链
  • 包含
    • gcc.exe- C 编译器
    • g++.exe- C++ 编译器
    • make.exe- 构建工具
    • ar.exe- 归档工具
    • ld.exe- 链接器
    • 其他开发工具
Makefile
  • 定义:构建脚本文件,定义了项目的编译规则和依赖关系
  • 作用:告诉make工具如何编译和链接项目
  • 格式:使用 Makefile 语法编写

三者关系图解

┌─────────────────────────────────────────────────┐ │ 源代码文件 (.cpp, .c) │ └───────────────────┬─────────────────────────────┘ │ ▼ ┌───────────────────────┐ │ Makefile │ │ (构建规则文件) │ └───────────┬─────────────┘ │ ▼ ┌───────────────────────┐ │ make.exe │ │ (来自 MinGW) │ │ 读取 Makefile │ └───────────┬─────────────┘ │ ▼ ┌───────────────────────┐ │ gcc/g++.exe │ │ (来自 MinGW) │ │ 编译源代码 │ └───────────┬─────────────┘ │ ▼ ┌───────────────────────┐ │ 目标文件 (.o) │ └───────────┬─────────────┘ │ ▼ ┌───────────────────────┐ │ gcc/g++.exe │ │ (链接器) │ │ 链接目标文件 │ └───────────┬─────────────┘ │ ▼ ┌───────────────────────┐ │ 可执行文件 (.exe) │ └───────────────────────┘

详细工作流程

1. 编写源代码
// main.cpp#include<iostream>intmain(){std::cout<<"Hello, World!"<<std::endl;return0;}
2. 创建 Makefile
# Makefile main.exe: main.cpp g++ main.cpp -o main.exe clean: del main.exe
3. 执行构建
# make.exe(来自 MinGW)读取 Makefilemake# make 发现需要 main.exe,依赖 main.cpp# 执行命令:g++.exe main.cpp -o main.exe# g++.exe(来自 MinGW)编译并生成 main.exe
4. 运行程序
.\main.exe# 输出:Hello, World!

关系总结

组件角色作用
MinGW工具链集合提供 Windows 上的 GCC 工具(gcc、g++、make 等)
GCC/G++编译器将源代码编译成目标文件,链接成可执行文件
Makefile构建脚本定义编译规则,告诉 make 如何调用编译器
make构建工具读取 Makefile,执行编译命令

实际开发中的完整流程

使用 CMake + MinGW 的典型流程
# 1. CMake 读取 CMakeLists.txt,生成 Makefilecmake..# 2. make(来自 MinGW)读取生成的 Makefilemake# 3. g++(来自 MinGW)编译源代码# (make 内部调用 g++)# 4. 生成可执行文件.\hello.exe
CMakeLists.txt 示例
cmake_minimum_required(VERSION 3.10) project(HelloCMake LANGUAGES CXX) add_executable(hello main.cpp)
CMake 生成的 Makefile(简化版)
# CMake 自动生成的 Makefile(简化示例) hello.exe: main.cpp g++ main.cpp -o hello.exe

🚀 完整安装和使用指南

第一步:安装 Scoop

# 在 PowerShell 中执行irmget.scoop.sh|iex

第二步:使用 Scoop 安装 MinGW

# 安装 MinGW(包含 gcc、g++、make)scoop install mingw

第三步:验证安装

# 检查 GCCgcc--version# 输出示例:gcc (MinGW.org GCC-8.2.0-5) 8.2.0# 检查 G++g++--version# 输出示例:g++ (MinGW.org GCC-8.2.0-5) 8.2.0# 检查 Makemake--version# 输出示例:GNU Make 4.2.1

第四步:创建测试项目

# 创建项目目录mkdirtest-projectcdtest-project# 创建源代码echo'#include <iostream> int main() { std::cout << "Hello from MinGW!" << std::endl; return 0; }'>main.cpp# 创建 Makefileecho'main.exe: main.cpp g++ main.cpp -o main.exe clean: del main.exe'>Makefile# 编译make# 运行.\main.exe

📚 扩展阅读

Scoop 有哪些值得安装的软件

下面这份清单把“装完就能显著提升效率、且几乎不会踩坑”的软件按场景分好类,全部来自 Scoop 现成仓库,复制命令即可一键安装。排名不分先后,但都是各品类里“用过就回不去”的口碑款。


  1. 终端 & 命令行基础设施
  2. git– 版本控制,必装
  3. sudo– Windows 里临时提权,再也不用“以管理员身份运行”
  4. 7zip/unzip– 压缩/解压全格式,体积小巧
  5. curl/wget– 下载、调试接口
  6. busybox– 100+ Linux 常用命令一次性补齐
  7. vim/nano– 随手改配置文件

  1. 开发环境一条龙
  2. vscode– 宇宙级编辑器,插件生态无敌
  3. nodejs/python/go/rust– 语言全家桶,自动配 PATH
  4. jdk17/maven/gradle– Java 后端三件套
  5. cmake/gcc– C/C++ 编译链
  6. docker-cli– 本地镜像/容器操作,配合 Docker Desktop 更香

  1. 文件与系统管理
  2. everything– 秒搜全盘文件名,体积不到 2 MB
  3. snipaste– 贴图+标注神器,截图党必备
  4. lockhunter– 解锁被占用的文件/文件夹
  5. winscp– SFTP/FTP 图形客户端
  6. beyondcompare– 文件/文件夹差异对比,合并利器
  7. syncthing– 开源跨设备同步,无云也能秒同步

  1. 日常办公 & 写作
  2. typora– Markdown 实时预览,写作体验天花板
  3. notepadplusplus– 轻量文本/代码编辑器
  4. foxit-pdf/sumatrapdf– 极速 PDF 阅读器
  5. wpsoffice– 免费办公三件套
  6. xmind– 思维导图,会议整理神器

  1. 媒体与娱乐
  2. potplayer– 最强本地播放器,解码格式全覆盖
  3. obs-studio– 直播/录屏/推流一站式
  4. imageglass– 开源看图工具,秒开大图
  5. ffmpeg– 音视频转码、提取、压缩命令行全能王

  1. 网络 & 安全小工具
  2. wireshark– 抓包排障,网络工程师标配
  3. nmap– 端口扫描、资产发现
  4. postman– API 调试、Mock 服务
  5. keepass/bitwarden-cli– 密码库本地+云双保险

  1. 字体与美化
  2. FiraCode-NF/JetBrainsMono-NF– 连字+图标一体化,终端/Vim 颜值翻倍
  3. mactype– 让 Win10/11 字体渲染瞬间“苹果化”

  1. 极客向 Bonus(按需)
  • powertoys– 官方效率套装(批量重命名、窗口置顶、颜色选择器等)
  • processhacker– 比任务管理器更强大的进程/服务查看器
  • dnspy– .NET 反编译调试
  • sysinternals– 微软官方 70+ 系统级工具合集

一条命令全装示例(按需要自行删减)

scoop install sudo 7zip git curl vim everything vscode nodejs python jdk17 maven typora potplayer snipaste notepadplusplus imageglass ffmpeg keepass foxit-pdf FiraCode-NF

以上软件均收录在main/extras/nerd-fonts等官方维护仓库,更新及时、卸载干净,可放心食用。

MinGW vs MSVC

特性MinGW (GCC)MSVC
平台WindowsWindows
许可证GPL/LGPL专有
标准支持最新 C++ 标准最新 C++ 标准
跨平台是(Linux/Mac 也用 GCC)
性能优秀优秀

为什么选择 MinGW?

  1. 跨平台一致性:Linux/Mac 也用 GCC,代码更容易移植
  2. 开源免费:完全免费,无授权问题
  3. 标准支持:对 C++ 标准支持及时
  4. 工具丰富:GDB 调试器、Valgrind 等工具支持

其他相关工具

  • CMake:构建系统生成器,可以生成 Makefile
  • Ninja:更快的构建系统,CMake 也可以生成 Ninja 文件
  • GDB:GNU 调试器,用于调试程序
  • Clang:另一个优秀的 C++ 编译器

🎯 总结

  1. Scoop是 Windows 上的包管理器,让软件安装变得简单
  2. MinGW是 Windows 上的 GCC 工具链,提供编译器和构建工具
  3. GCC/G++是编译器,负责将源代码编译成可执行文件
  4. Makefile是构建脚本,定义编译规则
  5. make是构建工具,读取 Makefile 并执行编译命令

它们的关系是:

  • MinGW提供工具(gcc、g++、make)
  • Makefile定义规则
  • make执行规则
  • gcc/g++执行编译

使用 Scoop 安装 MinGW 是最简单的方式,一条命令就能完成安装和配置!


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!