请选择 进入手机版 | 继续访问电脑版

Conan教程(1)—— 简介

[复制链接]
二次方先生 发表于 2021-1-1 10:30:02 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
本文档译自:https://docs.conan.io/en/latest/introduction.html
一、前言

        Conan是一个去中心的C/C++语言的包管理器。它是免费开源的,可以在所有平台上工作:Windows、Linux、OSX、FreeBSD、Solaris等,而且可以用于开发所有目标,包罗:嵌入式、移动端(iOS、Android)、裸机。同样集成了所有构建系统,比方:CMake、Visual Studio(MSBuild)、Makefiles、SCons等。
        Conan的设计主要是为了优化加快C/C++工程的开发以及一连集成(CI)。它提供了完整的二进制文件管理,可以基于任意个差异版本的包,创建和复用任意个差异的二进制文件(基于差异的设置、好比:arch架构、编译器版本等),对于所有的平台处理处罚过程都是一样的。由于Conan是去中心的,可以很容易在自己的服务器上托管私有的包和二进制文件,而不需要共享。发起使用免费的JFrog Artifactory Community Edition(CE)作为托管私有包的Conan服务器。
        Conan是成熟和稳定的,具有向前兼容性,有一个完整的团队专门致力于改进和支持它。而且得到了强大社区的使用和支持,从ConanCenter中的开源贡献者和包创建者到数千个团队和公司,都在使用Conan。
二、开源

        Conan是免费和开源的,提供了MIT许可证。可以在https://github.com/conan-io/conan检出源码和追踪问题(好比:问题和技能支持、陈诉bug、提出特性要求和改进发起)。
三、去中心的包管理器

        Conan是一个基于client-server架构的去中心包管理器。这意味着client可以指定差异的server拉取或上传包,雷同git的push/pull模式。
        从另一个层面看,server就像是一个包存储器,它们并不构建和创建包,包是由client创建的,如果二进制文件是从源码构建,编译的工作是由client步伐执行。

        上图中差异的步伐有:


  • Conan客户端:这是一个控制台/终端下令行步伐,包罗了用于创建和使用包的繁重逻辑。它有一个当地的包存储缓存,因此允许我们在离线时创建和测试包。只要不需要从远程服务器获取新包,我们也可以离线工作。
  • JFrog Artifactory Community Edition(CE):发起作为托管私有包的Conan服务器。它是一个JFrog Artifactory的免费社区版,包罗了一个WebUI、多个认证协议(LDAP)、创建高级拓扑的虚拟远程存储库、Rest API和托管任意工件(也可以明确为各种包、源码、二进制文件等资源)的通用存储库。
  • conan_server:这是一个跟Conan客户端一起发布的小型服务器。它只是一个简单的开源实现,提供了根本的功能,不包罗WebUI和其他高级特性。
  • ConanCenter:这是一个社区为开源库贡献包的公共中央存储库,好比:Boost、Zlib、OpenSSL、Poco等。
四、二进制文件管理

        Conan最强大的特性之一是,它可以为任意平台和设置创建和管理预编译的二进制文件。使用预编译的二进制文件,可以制止从源码重复构建,为开发和一连集成节流了大量时间,同时还提高了工件(也可以明确为各种包、源码、二进制文件等资源)的可复用性和可跟踪性。
        一个包是由一个conanfile.py文件界说的,该文件界说了包的依赖关系、源文件、从源码构建二进制文件的方式等。一个包的conanfile.py食谱可以生成任意个二进制文件,每个二进制文件适配于差异的平台和设置:操纵系统、arch架构、编译器、构建范例等。这些二进制文件可以在所有平台上使用相同的下令创建并上传到服务器,对于所有的包都指向同一个源,而差异的操纵系统并不需要有差异的办理方案。

        从服务器上安装包非常高效。只需下载当前平台和设置所需的二进制文件,而不是全部。如果没有适配的二进制文件,也可以通过客户端从源码构建包。
五、所有平台、构建系统和编译器

        Conan可以工作在:Windows、Linux(Ubuntu、Debian、RedHat、ArchLinux、Raspbian)、OSX、FreeBSD和SunOS,由于它是可移植的,它可以工作在任何可以运行Python的其他平台上。它可以针对任何现有的平台,从裸机到桌面、移动、嵌入式、服务器和交织构建。
        Conan可以使用任意构建系统。已经内建集成了多数当前最流行的有:CMake、Visual Studio(MSBuild)、Autotools、Makefiles和SCons等。但并不一定得必须使用此中的一种。甚至不一定所有的包都得使用相同的构建系统,每个包可以使用差异的构建系统,并可以依赖于其他使用差异构建系统的包。
        同样地,Conan可以管理任意版本的任意编译器。默认界说了当前最流行的有:gcc、cl.exe、clang、apple-clang、intel,同时支持差异的版本设置、运行时、C++尺度库等。该模子同样可扩展为任意的设置。
六、稳定版

        运行Conan需要安装Python 3。它已经支持Python 2到2020年1月1日。从Conan 1.22.0 release版本开始,Python 2不再支持。
七、社区

        Conan已经被奥迪、大陆、普洛斯、伊莱克斯和梅赛德斯-疾驰等数百家公司、以及世界各地数千家开发商用于生产过程。


来源:https://blog.csdn.net/hezhanran/article/details/111991050
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )