CppStack

C++技术栈一站式学习 · ‌业精于勤,荒于嬉;行成于思,毁于随。

CppStack开箱即用的C++开发环境

CppStack 是一个开箱即用的便携式 C++ 开发环境,集成了当前最新版(2025.08)的 MSVC、Windows SDK、CMake、Ninja、VS Code 等开发工具。无需安装,解压即可使用,非常适合快速部署、多机使用和随身携带。

换句话说,CppStack 就是一个绿色版的“C++ 开发工具箱”,让你可以在任何 Windows 机器上进行 Modern C++ 开发。

✨ 特性

  • 🚀 绿色安装:解压即可使用,不污染系统环境变量
  • 🛠 工具齐全:内置 MSVC、Windows SDK、CMake、Ninja、VS Code
  • 📦 便携性强:可放在 U 盘/移动硬盘/云盘,随身携带
  • ⚡ 快速部署:适合 CI/CD、教学、临时环境搭建
  • 🔒 环境隔离:不依赖外部环境,避免“环境不一致”问题

不需要任何配置,不依赖外部环境,可直接运行 cmake、code、ninja、cl、link 等开发命令:

.\cppstack.exe --help
Usage: cppstack.exe <COMMAND>

Commands:
  create     create template c++ project
  cmake      run cmake
  code       run vscode editor
  ninja      run ninja
  cl         run cl compiler
  link       run link linker
  pwsh       enter pwsh console env
  show-envs  show cpp-stack envs
  help       Print this message or the help of the given subcommand(s)

Options:
  -h, --help  Print help

CMake 入门:从零开始构建一个独立应用程序

CMake 是一个跨平台的构建系统工具,可以帮助我们从源代码生成 Makefile、Ninja 构建文件、Visual Studio 工程、Xcode 工程等。
在这篇文章里,我们将从零开始,写一个最小的 CMakeLists.txt,并使用 Ninja Multi-Config 构建系统,在同一个构建目录里同时支持 DebugReleaseRelWithDebInfoMinSizeRel 多种配置。

CMake 入门进阶:在项目中引入外部库

在上一篇文章中,我们已经学会了如何用 CMake 和 Ninja Multi-Config 构建一个最小的 C++ 应用程序。
在实际开发中,几乎所有项目都会依赖外部库,例如图像处理库 OpenCV
这篇文章将介绍如何在 Windows 平台下手动安装 OpenCV,并在 CMake 工程中引入它。

CMake 进阶:构建与封装 C++ 库:从发布到使用

在 C++ 工程开发中,随着项目规模的扩大,公共功能往往需要封装成独立的库(Library),以便在多个应用中复用。CMake 提供了完整的支持:

  • 在库项目中通过 install()export() 导出配置文件;
  • 在应用项目中通过 find_package() 查找并使用库。

本文将介绍如何拆分项目结构,并实现一个完整的 库发布与应用使用 的流程。

CMake 进阶:支持 DLL 导出函数与静态/动态库切换

在跨平台 C++ 库开发中,常见的两个需求是:

  • Windows 平台下 DLL 的导出函数:需要在编译库时导出符号,在使用库时导入符号;
  • 同时支持静态库和动态库:用户可以选择编译成 .dll/.so.lib/.a
  • 安装与导出时同时支持两种库:让应用项目通过 find_package() 使用时,能自动区分静态/动态库。

本文将介绍如何在 CMakeLists.txt 中实现这三个功能。