Conan:如何获取预构建包中包含的静态链接库的确切版本?

问题描述 投票:0回答:1

我使用以下命令获取 libpng 库的预构建包列表:

conan download libpng/1.6.40 -p "arch=x86_64 AND os=Windows AND compiler=msvc AND compiler.version=192" -r conancenter -f json

除了其他信息,我还得到以下信息:

                        "requires": [
                                "zlib/1.3.Z"
                            ]
                        }

我获取下载的预构建包的路径,如下所示:

conan cache path libpng/1.6.40:2dc71d849fb2a3eea8f4b3bf24e7117c93b68a8a
(最后一部分是来自
conan download
输出的包 ID)。

如何找出用于构建此预构建 libpng

.lib
文件的 zlib 的确切版本?柯南下载信息只是给了我一个
Z
版本的最后一部分。

我还研究了

conan graph info
命令,但不知道这是否可以帮助我。

static-libraries static-linking conan conan-2
1个回答
0
投票

Conan 包默认不包含二进制文件用于链接的确切版本和修订版本的声明。列出的

"zlib/1.3.Z"
是“二进制兼容性”声明,表示此构建的二进制文件可以与 zlib/1.3 的任何补丁版本一起使用,而无需重新编译自身。

如果您想在构建包时存储依赖项版本的精确副本,可以通过以下方式完成:

  • 修改配方,您可以迭代生成您喜欢的格式的文件
    self.dependencies
    。如果您想预构建,或者在
    generate()
    期间甚至在
    build()
    方法中,这可以在
    package()
    方法中完成。使用类似
    dep.ref
    的内容,阅读本节
  • 无需修改配方,并将其应用到正在构建的所有包,您可以添加与上面相同的逻辑,但在钩子内(阅读本节)。后/预生成/构建/包可能可以解决此问题。
© www.soinside.com 2019 - 2024. All rights reserved.