许多现代语言和新兴语言的构建已经不是难题,因为在设计语言之初就已经考虑好了持续集成、跨平台构建等问题。
然而,C 和 C++ 的开发场景多种多样,开发工具也多种多样,因此 C 和 C++ 的独立构建或构建工具的管理仍然是一个重要课题。
1. 独立构建环境
前文讲过,IDE 的发展路线大致经历了以下几个阶段:
1)IDE 自行设计构建机制;
2)IDE 生成 Makefile 并调用 Make 构建;
3)IDE 和用户共同管理 Makefile;
4)IDE 和用户共同管理更高级的构建脚本。
目前,仍有相当数量的 C++ 开发工具处在第一阶段,因此构建需要通过 IDE 来完成。
对于此类工程,需要将 IDE 整体纳管,作为配置项进行管理。
第一步是搭建隔离的 Windows 环境,安装 IDE 和相关插件(最好是解压缩安装),并将这个环境整体进行管控。
2. 剥离构建工具
上一步管理的文件体积较大,通常在 10GB-100GB 级别。第二步则需要进行精简。
从 IDE 中剥离出构建工具、Toolchain 和库,分开管理。这样在一个干净的操作系统中,可以通过脚本自动安装构建工具集,同时节省存储空间。
这一步可能还需要 IDE 厂商的支持,以确保工程能够通过命令行完成构建。
3. 转换为 Linux 构建环境
许多嵌入式 C++ 工程虽然是在 Windows 上开发,但通过 MinGW 的 GCC Toolchain 来构建。这类工程可以考虑迁移到 Linux 环境进行构建。
迁移的好处是可以减少管理 Windows 构建机的工作量,最大程度复用大多数 DevOps 平台内置的 Linux 构建环境,减少集成障碍。
在转换的同时,统一构建脚本参数,将 clean、build、test、package 等构建指令标准化。
4. 容器化
容器化是最终目标。
将构建环境固化,完成坚固的配置管理。同时享受隔离、便携、快速搭建测试环境等的好处。