[分享创造] [mcpp]: 用 C++23 模块 + import std 开发了个构建工具,并实现自己构建自己(自举)

[分享创造] [mcpp]: 用 C++23 模块 + import std 开发了个构建工具,并实现自己构建自己(自举)

[分享创造] [mcpp]: 用 C++23 模块 + import std 开发了个构建工具,并实现自己构建自己(自举)

一句话看懂:开发者基于 GCC 15.1 对 C++23 模块特性的支持,构建了一个纯 C++23 模块编写的构建工具 mcpp,并已实现自举(用自己编译自己)。这是 C++ 模块化开发从标准走向工程实践的重要一步,为现代 C++ 项目的构建和管理提供了原生模块化的新方案。

事件核心:发生了什么

自 GCC 15.1 初步支持 import std 以来,该项目作者在 C++ 模块化上进行了大量实践,最终开发出 mcpp——一款专为 C++23 模块化项目设计的构建工具。mcpp 完全使用 C++23 模块编写(包括模块接口单元 .cppm、模块分区等特性),并已通过自举验证:即 mcpp 可以用自己构建出自己,证明其自身构建逻辑的完整性和可靠性。

目前 mcpp 托管在 GitHub (mcpp-community/mcpp),支持 Linux x86_64 平台,安装简便(自动添加至 shell PATH),卸载只需删除 ~/.mcpp。项目已提供 mcpp.toml 配置文件管理依赖,支持模块化库(mcpplibs)的引用和版本约束。

为什么重要

长期以来,C++ 的模块化特性(C++20 引入,C++23 完善)在构建工具层面缺乏原生支持,导致开发者仍需依赖传统的头文件 Include 和 Makefile/CMake 体系。mcpp 的出现填补了这一空白:它让“用模块写代码并用模块工具构建”成为现实,降低了 C++ 模块化的入门门槛。对于 C++ 生态而言,这是从“头文件时代”向“模块化时代”过渡的关键工具级基础设施。同时,项目接受 AI Agent 参与贡献(提供 .agents/skills/skill.md),也为开发者探索 AI 编码助手在 C++ 模块化项目中的协作提供了实验场景。

对用户/开发者/创作者的影响

  • 对 C++ 开发者:如果你正在或打算使用 C++23 模块(如 import std、.cppm 文件),mcpp 提供了一个无需 CMake 插件的原生构建方案。它支持依赖管理、模块分区、自举验证,适合小到中型模块化项目的快速搭建。
  • 对开源贡献者:项目处于早期阶段,欢迎提交 Issue 和 PR,也接受 AI Agent 辅助开发。对于想在 C++ 模块化构建工具方向积累经验的开发者,这是一个低成本参与的入口。
  • 对教育者/学习者:mcpp 自举的特性可作为“工具吃自己的狗粮”的典型教材,帮助理解构建系统、模块化设计以及元循环实现。

值得关注的后续

  1. 跨平台支持进展:目前 mcpp 主要面向 Linux x86_64,若后续扩展至 Windows(MSVC 模块支持)和 macOS(Clang 模块支持),将显著扩大其适用场景。
  2. 生态与社区增长:能否吸引更多模块化库(mcpplibs)的贡献者,形成围绕 mcpp 的模块化库生态,是衡量其长期生命力的关键。
  3. 与 AI 编码助手的协作模式:项目明确支持 AI Agent 贡献,这一实践若成功,可能成为 C++ 开源项目中人机协作开发的参考案例。

来源:V2EX (创意工作者社区)

celebrityanime
celebrityanime
文章: 2147

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注