C语言■Github架构师解读Cu002FC++应用包管理的Why和How( 三 )
本文插图
综上所述 , 与Java、JavaScript等使用的类似 , Conan为C/C++开发者提供了一个成熟的、功能完整、工具完备的包管理解决方案 , 能够辅助C/C++的开发者创建稳定、高效、一致、可重复的DevOps流水线 。
四、如何在C/C++应用中使用Conan Johannes在演讲中还通过演示 , 展示了如何基于Conan , 实现便捷、高效的C/C++应用的构建 。
Johannes所用的例子不是简单的“Hello World” , 而是github上一个真实项目:
本文插图
要使用Conan , 我们只需为每一个C/C++应用增加一个conanfile.txt,用以描述其依赖关系:
本文插图
利用“conan remote add”命令 , 可以将Conan客户端和Conan的包仓库建立关联 , 再执行“conan install” , 就可以将符合目标环境需求的所有依赖二进制包下载在本地 。
本文插图
在编辑构建参数 , 如使用CMake构建 , 就修改CMakeLists.txt , 加入conan的配置 , 就可以集成下载的依赖二进制包 , 完成C/C++应用的构建 。
本文插图
除了直接引用Conan仓库中已有的包及其二进制文件 , 利用Conan也可以创建自己开发的Conan包作为库 , 供其他C/C++应用依赖 。 Johannes还以github上的另一个项目演示了如何创建自己的Conan包:
本文插图
要创建Conan的库包 , 需要为项目增加conanfile.py文件 , 如上图中的右半部分 , 改py文件就对应了之前提到的Conan包的Recipe,它除了描述了该包的基本信息之外 , 还通过函数定义了如何构建该库包得到二进制文件的过程 。
本文插图
通过执行“conan create”命令 , 我们就可以生成自定义的Conan包作为内部库 , 再执行“conan upload”将其上传到Conan包仓库 , 就可以被其他C/C++应用引用、依赖了 。
此外 , Conan还可以与Jenkins等工具集成 , 通过自动化、并行的方式 , 一次性构建出同一版本包 , 针对不同目标环境的所有二进制文件:
本文插图
最后 , 基于Conan的包管理方案 , 通过与GitHub、Jenkins、Artifactory、Bintray等工具对接 , 可以实现完整的C/C++应用的DevOps流水线:
本文插图
通过演示可以看出 , 在C/C++应用中引入Conan的包管理 , 方式是直观、简便的 , 附加的工作负载并不多 。 而通过与各种工具的集成 , 可以基于Conan方便地创建C/C++应用的DevOps流水线 , 满足敏捷的需求 。
五、总结 敏捷化是目前业界应用研发的发展方向 。 通过实施敏捷化 , 我们可以实现迅速的、持续的产品交付 , 从而尽早发现问题 , 尽早解决问题 。 而且 , 通过快速、持续的交付 , 我们也可以获得用户持续的反馈 , 渐进明细地挖掘和实现用户的真正需求 。
本文插图
对于C/C++应用及开发者来说 , 基于Conan的包管理方案 , 以及与DevOps领域工具的集成使用 , 可以创建便捷、高效、一致性、可重复的DevOps流水线 , 从而满足敏捷化的需求 。
推荐阅读
- 「事情」史海峰:万字长文剖析技术人如何成长
- 「」什么是基础架构即代码和平台即代码?看完就清楚了
- 凤凰网安徽综合:除了Scratch,2020年热门的少儿编程语言还有哪些
- 「」微软翻译器和其他产品现在提供十种印度语言实时翻译服务
- 『』提升手机上行链路效率的射频功放架构--EER技术介绍
- 「技术」自然语言处理技术可提升创新效率
- []深入了解CI/CD:工具、方法、环境、基础架构的全面指南
- 智能手机■CEVA全新高性能传感器中枢DSP架构SensPro—助力智能感知发展
- 「PC硬科技」英伟达MX400系列移动显卡现身,图灵架构、GDDR6
- 『』一文看懂荣耀30首发的麒麟985处理器 三档能效架构