如何获取预构建libpng包中静态链接zlib库的精确版本?
问题背景
我通过以下命令获取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
输出结果中显示依赖的zlib版本为zlib/1.3.Z,无法看到精确版本号。随后我通过以下命令获取了该预构建包的本地缓存路径:
conan cache path libpng/1.6.40:2dc71d849fb2a3eea8f4b3bf24e7117c93b68a8a
现在需要确定构建该libpng预构建.lib文件所使用的zlib精确版本,尝试过conan graph info但不确定用法。
解决方法
查看包的依赖详情:使用
conan inspect命令直接查询目标包的精确依赖,替换为你的包ID即可:conan inspect libpng/1.6.40:2dc71d849fb2a3eea8f4b3bf24e7117c93b68a8a --requires该命令会输出包实际依赖的所有库的精确版本号,包括zlib的完整版本。
检查缓存目录中的元文件:进入libpng包的缓存路径后,查看
conaninfo.txt文件,里面记录了完整的依赖树信息,包含zlib的精确版本。你也可以查看目录下的dependencies子目录或锁文件,这些文件同样会存储详细的依赖版本数据。正确使用
conan graph info:针对具体包ID执行该命令,生成完整的依赖图:conan graph info libpng/1.6.40:2dc71d849fb2a3eea8f4b3bf24e7117c93b68a8a输出结果中会明确列出zlib的精确版本号,因为包ID对应的是已经解析好依赖的具体构建包,所以该命令能返回实际使用的依赖版本。
内容的提问来源于stack exchange,提问作者langlauf.io
相关产品推荐
相关产品推荐

