0

例如,如果我的包需要 gcc 来构建并且目标系统上不存在 gcc,那么从源代码构建我的包时会安装它吗?如果是这样,我如何为我的包指定构建依赖项?对于不同的系统,它们可能不同。

4

1 回答 1

2

柯南不会安装任何没有被指示安装的东西。对于安装构建依赖项,有build_requires的概念

它们可以声明为:

  • 在包配方中,用于该包的特定工具。例如,可能是一个测试库(它是一个构建要求,仅在构建和测试时需要,但一旦你拥有二进制文件就不需要它。它不会影响最终的二进制文件)
  • 在配置文件中:这是针对通用工具的,主要适用于所有依赖项。它们是由最终用户在这里声明的,他们可以选择这种方式来使用他们的系统安装工具,或者柯南安装的工具。

Bintray 中有 CMake 和 MinGW 工具的现有包( conan -centerbincrafters repos)

conan 中的软件包是在用户级别安装的,不需要 root。这些工具(CMake、MinGW)易于在用户级别安装和操作。然而,在 Linux 中用户级别的 gcc 编译器并不常见。我不知道 Linux gcc 的 conan 包,尽管可以将它们构建为完整包或作为系统包的薄包装器。后者可能更难以在系统中安装的不同编译器版本之间提供切换。

于 2018-09-08T10:53:06.003 回答