本文档翻译自:https://docs.conan.io/en/latest/creating_packages/define_abi_compatibility.html#using-package-id-for-package-dependencies

    self.info对象还有一个require对象。 它是一个字典,其中包含每个需求,所有直接和传递依赖项的必要信息。 例如,self.info.requires["my_other_lib"]RequirementInfo对象。

    • 每个要求信息都有以下只读参考字段:

      full_name:完整要求的名称,例如> my_other_lib> full_version:完整要求的版本,例如1.2 full_user:完全需要的用户,例如my_user full_channel:完整要求的频道,例如stable full_package_id:完整要求的软件包ID,例如c6d75a…

    **

    • 以下字段用于package_id() 评估:

      name:默认情况下,与full_name的值相同,例如> my_other_lib。> version:默认情况下,full_version的主要版本表示形式。 例如,对于1.2 full_version字段为1.Y,对于1.2.3 full_version字段为1.Y.Z

    user:默认情况下为None(不影响程序包ID)。

    channel:默认情况下为None(不会影响程序包ID)。

    package_id:默认情况下为None(不影响程序包ID)。

    在为模型依赖关系定义包ID时,必须考虑两个因素:

    • 遵循我们要求的版本控制模式 (semver?,custom?)。
    • 正在构建或重用的库的类型 (共享 (.so,.Dll。Dylib),静态)。