有些要求添加到包装配方中并不自然。例如,假设你在柯南有一个cmake/3.4 包。您是否将它作为需求添加到zlib包中,以便它将首先安装cmake来构建zlib?
    简而言之:

    • 只有当您需要从源代码构建包时才需要这些要求,但是如果二进制包已经存在,您就不想安装或检索它们。
    • 这些可以是开发工具、编译器、构建系统、代码分析器、测试库等。
    • 它们可以与包的创建非常正交。使用CMake 3.4 、 3.5 或 3.6 构建zlib并不重要。只要CMakeLists.txt兼容,它将产生相同的最终包。
    • 您不希望添加许多不同的版本 (如CMake的版本) 来使用它们来构建包。您希望轻松更改需求,而无需编辑zlib包配方。
    • 当创建像zlib这样的包时,其中一些甚至可能没有被考虑在内,比如将它交叉编译到安卓系统 (安卓工具链也是一个构建要求)。

    为了解决这些需求,柯南实施了build_requires。