Toolchain
工具链,是由多个独立工具组成的、按固定顺序协作的软件开发流水线,负责把人类可读的源代码一步步转化到及其可执行的形态
工具链的界限是模糊的,在很多系统/底层语境里toolchain约等于compiler toolchain,即compiler, assembler, linker;这些是工具链里的核心子集:编译工具链
但实践工程中不这么切,在真实开发中,工具链通常指:让开发流程跑起来的一整套工具体系
广义的工具链范畴非常庞大
- 编译工具链
- C/C++编译器(frontend + backend)
- IR
- optimization passes
- ld
- Build System
- Make
- CMake
- Ninja
- 包管理/依赖管理
- vcpkg
- Conan
- npm/cargo/pip
- 调试&分析工具
- gdb, lldb
- profiler(perf, flamegraph)
- sanitizer(ASan, UBSan)
- 开发辅助工具
- 静态分析(clang-tidy)
- 格式化(clang-format)
- LSP
- CI//CD
- 代码生成工具
- asset pipeline
- 运行时/环境(部分)
- 标准库(libc/libstdc++)
- runtime(比如C++ ABI, GC, JIT runtime)
- 固件烧录/部署工具
- 嵌入式开发中用于将程序写入芯片