从源代码构建时,Conan 会安装构建依赖项吗?
Does Conan install build dependencies when building from source?
例如如果我的包需要 gcc 来构建,而 gcc 不存在于目标系统上,那么在从源代码构建我的包时会安装它吗?如果是这样,我如何为我的包指定构建依赖项?对于不同的系统,它们可能会有所不同。
Conan 不会安装任何未被指示安装的东西。
对于安装构建依赖,有build_requires
的概念
它们可以声明:
- 在包配方中,针对该包的特定工具。例如,可以是一个测试库(它是一个构建要求,只需要构建和测试,但一旦你拥有二进制文件就不需要了。它不会影响最终的二进制文件)
- 在配置文件中:这是针对通用工具的,主要适用于所有依赖项。它们是由最终用户在这里声明的,最终用户可以选择这种方式来使用他们系统安装的工具,或者柯南安装的工具。
Bintray 中已有 CMake 和 MinGW 工具包(conan-center, bincrafters 存储库)
conan 中的软件包是在用户级别安装的,不需要root。这些工具(CMake、MinGW)易于在用户级别安装和操作。但是,在用户级别 Linux 中使用 gcc 编译器并不是很典型。我不知道 Linux gcc 的 conan 包,尽管可以构建它们,作为完整包或作为系统包的薄包装。后者可能更难在系统中安装的不同编译器版本之间提供切换。
例如如果我的包需要 gcc 来构建,而 gcc 不存在于目标系统上,那么在从源代码构建我的包时会安装它吗?如果是这样,我如何为我的包指定构建依赖项?对于不同的系统,它们可能会有所不同。
Conan 不会安装任何未被指示安装的东西。 对于安装构建依赖,有build_requires
的概念它们可以声明:
- 在包配方中,针对该包的特定工具。例如,可以是一个测试库(它是一个构建要求,只需要构建和测试,但一旦你拥有二进制文件就不需要了。它不会影响最终的二进制文件)
- 在配置文件中:这是针对通用工具的,主要适用于所有依赖项。它们是由最终用户在这里声明的,最终用户可以选择这种方式来使用他们系统安装的工具,或者柯南安装的工具。
Bintray 中已有 CMake 和 MinGW 工具包(conan-center, bincrafters 存储库)
conan 中的软件包是在用户级别安装的,不需要root。这些工具(CMake、MinGW)易于在用户级别安装和操作。但是,在用户级别 Linux 中使用 gcc 编译器并不是很典型。我不知道 Linux gcc 的 conan 包,尽管可以构建它们,作为完整包或作为系统包的薄包装。后者可能更难在系统中安装的不同编译器版本之间提供切换。