这些工具通常不是应用程序图本身的一部分,它们仅用于构建库,因此通常应将它们声明为构建要求,在食谱本身或简介中。
    例如,有许多食谱可以利用我们在上面看到的nasm包,如ConanCenter中已经提供的flac或libx264。这些配方将利用nasm在运行一些装配优化的过程中。

    1. class LibX264Conan(ConanFile):
    2. name = "libx264"
    3. ...
    4. build_requires = "nasm/2.13.02"
    5. def build(self):
    6. ... # ``nasm.exe`` will be in the PATH here
    7. def package_info(self):
    8. self.cpp_info.libs = [...]

    在其他配方中使用工具包 - 图1
    消费者配方只需要声明相应的buildrequest,柯南将负责将所需路径添加到相应的环境变量中:
    柯南创建路径/到/libx264 — 配置文件: 构建 = 窗口 — 配置文件: 主机 = 配置文件
    主机
    在这里,我们告诉柯南为配置文件profile_host文件中定义的主机平台创建libx264 包,并将配置文件窗口用于构建上下文中的所有构建要求。换句话说: 在此示例中,我们正在运行Windows计算机,并且我们需要与该计算机兼容的nasm版本,因此我们为构建上下文提供windows配置文件,我们正在为主机平台生成库,该库在profile_host配置文件中声明(阅读更多关于构建需要上下文的信息)。
    使用两个配置文件迫使柯南区分构建上下文中的配方和主机上下文中的配方。它有几个优点:

    • 这些工具的配方是常规配方,不需要调整它们 (在 1.24 之前,它们需要特殊设置和一些包ID定制)。
    • 我们为构建机器提供了完整的配置文件,因此如果这些构建要求还不可用,柯南可以从源代码中编译它们。
    • Conan不仅将bin文件夹的路径添加到环境中,还将填充DYLD_LIBRARY_PATH和LD_LIBRARY_PATH变量,这些变量是查找工具在运行时可能需要的共享库所必需的。