常见问题

  • 什么是 Conan?

    Conan 是一个用于 C 和 C++ 的包管理器,旨在解决一些非常常见且难以解决的挑战。并非所有开发人员都使用过包管理器,所以让我们简要解释一下这意味着什么。首先,Conan 包管理器允许开发人员捕获在构建库和应用程序期间创建的工件,并将它们存储为“Conan 包”。这通常是头文件和库(静态或动态)的组合,但也可能包含可执行文件。然后,开发人员可以将其他项目需要的“Conan 包”列为“依赖项”,Conan 会根据需要将所有工件传递到这些项目中。通过这种策略,使用 Conan 的包管理提供了一种一流的机制,可以跨多个项目重用代码和共享组件。最后,Conan 具有一个服务器应用程序,可以在其上创建 Conan 仓库。然后,Conan 客户端可以从此类仓库上传和下载 Conan 包,使开发人员能够在团队之间以及跨不同的开发环境共享打包的组件。
  • 使用 Conan 的好处是什么?

    现代 C 和 C++ 软件通常被开发为独立组件的集合,包括库和应用程序。这通常包括开源组件和私有组件的组合。结果,随着项目中组件数量的增加,软件构建过程变得越来越困难。使用像 Conan 这样的包管理器来定义和维护这些组件之间的关系,可以使构建过程变得容易得多。它还支持强大的功能,例如能够以通用格式描述每个组件的构建步骤,以及能够将已构建的二进制文件存储并上传到共享仓库的能力。
  • 在哪里可以获取 Conan 包?

    ConanCenter 是一个公开的、经过审核的、由 Conan 团队维护的中心仓库,其中包含数百个流行的开源库和应用程序。这是查找开源项目包的最佳位置,这样您就不必自己创建它们。这些包的配方可以在 ConanCenterIndex 中找到。
  • 我可以创建自己的 Conan 包吗?

    大多数 Conan 用户利用它来创建他们自己的组件的包,以及将其用作使用开源包的方法。您可以快速学习如何按照 [文档中的说明] 创建自己的 Conan 包配方。创建了一些自己的包后,您还可以学习如何 将它们上传到您自己的私有 Conan 仓库
  • Conan 可以存储/管理预编译二进制文件吗?

    是的,Conan 的核心功能之一是它能够 存储和管理库和应用程序的预编译二进制文件。当 Conan 包用于构建库或应用程序时,它会将二进制文件存储在本地缓存中。这些二进制文件可以通过远程 Conan 仓库上传和共享。这样,任何数量的独特配置都可以在单个包中构建和存储,包括不同的操作系统、编译器、编译器版本和体系结构。
  • 我可以将我的构建系统/工具与 Conan 集成吗?

    是的,Conan 支持大多数 流行的 C 和 C++ 构建系统,包括 CMake、Autotools、MSBuild、B2 等。它也是可扩展的,使用户能够轻松地添加对自定义或专有构建系统的支持,这在企业组织中很常见。使用 Conan,您可以构建和打包组件,而不管每个组件使用什么构建系统。
  • Conan 可以管理同一库/包的不同版本吗?

    是的,Conan 具有 强大的版本管理功能。使用 Conan,每个库或包的每个版本在仓库中都是独立管理的。任何数量的版本都可以同时存储在本地缓存或远程仓库中,每个版本都有自己的预构建二进制文件。当您拥有依赖于同一库或包的不同版本的不同应用程序时,或者当您希望更改特定项目的依赖项的版本时,这非常有用。这两种情况都很简单,并且完全受支持。
  • 我可以创建自己的私有仓库来托管 Conan 包吗?

    是的,Conan 包含能够 创建和托管私有 Conan 仓库 以共享包。JFrog 的“Artifactory”应用程序是 Conan 包的首要企业仓库托管平台。Artifactory CE for C 和 C++ 是一个免费版本,旨在为 C 和 C++ 开发人员社区提供创建和托管 Conan 仓库的能力,无需任何费用,并且可以享受 Artifactory 服务器应用程序的成熟性和稳健性。JFrog 还提供托管在云服务中的 Artifactory,Conan 仓库也可以在其中创建和托管。
  • Conan 可以与哪些平台一起使用?

    Conan 是跨平台的。这意味着两件事。首先,这意味着 Conan 客户端可以在 Linux、Windows、macOS 以及任何其他 Python 可以运行的地方运行。其次,这意味着它可以为任何平台构建和存储包。如果您有可以针对平台的编译器或交叉编译器,Conan 可以存储它的二进制文件。常见示例包括 Android 和 IOS 等移动平台、实时硬件平台以及嵌入式硬件平台,包括裸机设备。
  • Conan 稳定吗?

    是的。Conan 维护着对 稳定性的坚定承诺。使用主要版本(例如 Conan 1.x)构建的包将继续适用于所有未来的 Conan 1.x 版本。如果包模型有重大更改,它将不会在发布下一个主要 Conan 版本(例如 2.x)之前发生。
  • Conan 的许可证是什么?

    Conan 项目以非常宽松的 MIT 许可证发布。
  • Conan 项目是如何维护的?

    JFrog Inc. 使用专门的全职开发团队维护 Conan。该团队包括 Conan 的创始人,以及几名额外的开发人员。Conan 团队还制定了一个正式的社区参与和反馈策略,称为 Conan Tribe。该部落由来自 Conan 用户社区的 70 多名志愿者组成,他们承诺在 Conan 团队要求时对主要路线图决策提供意见。
  • Conan 项目有多活跃?

    除了全职维护团队外,Conan 还拥有一个非常活跃的用户社区,每月提交数十个拉取请求。2020 年,Conan 共收到 3500 多个 PR。此外,Conan Slack 频道 拥有 1200 名成员,是 C++ 社区 中最活跃的频道之一。
  • 有哪些资源可以帮助我学习 Conan?

    Conan 团队创建了多个交互式的、自定进度的 Conan 培训课程。这些课程完全免费,由 JFrog 提供在 JFrog academy 中。