工欲善其事必先利其器,python,javascript这些相对现代的语言都有着成熟高效的众多工具链提高开发效率和方便代码管理.而像go,rust这样的新兴编程语言,代码风格检测,测试框架,包管理工具甚至直接作为语言的一部分存在.C作为一个历史悠久的编程语言当然也有这些工具,但同样由于历史悠久,这些工具都相当碎片化,但是C工具但往往各自为政.这点上有点像现在的node.js.
本篇讲工具链,很多工具去他们官网看会觉得特别有年代感(python也有很多这样的官网).其主要原因就是历史悠久成熟稳定.
一般说工具链主要是这样几个工具:
- 项目结构
- 编译与运行环境
- 编译配套工具
- 测试工具
- 编程风格
- 文档工具
- python接口包装
另外就是额外的制作命令行工具了.本章除了C的工具链,同时也会讲怎么用c写命令行工具.因为C是编译型语言,测试也是需要编译出来才可以运行的.而测试往往需要通过命令行来作为输入.
本章的代码在tutorialforclang/c-tool-chain这个项目中