错误:本机库“openssl”被同一包的多个版本链接到

2023-11-21

当我尝试进行货物构建时,我遇到了这个问题:

错误:本机库openssl被同一个包的多个版本链接,但只能链接一次;尝试更新或固定您的依赖项以确保此包仅显示一次

openssl-sys v0.6.7

openssl-sys v0.7.13

Cargo 和 Rust 版本:

$ cargo --version
cargo 0.11.0-nightly (3ff108a 2016-05-24)

$ rustc --version
rustc 1.11.0-nightly (7746a334d 2016-05-28)

Files:

  • Cargo.toml

  • Cargo.lock

无法理解为什么这不能编译以及如何解决这个问题。 谢谢你!


链接的工作方式是,您只能链接单个版本的本机库,否则最终会出现重复的符号。货物的links清单密钥有助于防止您意外链接到同一组符号两次。

要解决这个问题,您需要通读您的Cargo.lock(这不是一种难以理解的文件格式)。找到将有问题的库作为依赖项的包,并记下哪些包具有冲突的版本。

然后就需要手动解决your依赖关系使得their依赖项使用相同版本的本机库。


在这种情况下,依赖链的重要方面是:

server (0.0.1) => cookie (0.2.4) => openssl (0.7.13)
               => hyper (0.6.16) => cookie (0.1.21) => openssl (0.6.7)

要修复它,请修改您的Cargo.toml使用与 hyper 相同版本的 cookie。然后你将隐式获得相同版本的 openssl。

老实说,这是目前 Rust 最粗糙的部分之一。至少this“同一个板条箱的多个不同版本”的奇怪版本提供了直接的货物错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

错误:本机库“openssl”被同一包的多个版本链接到 的相关文章

随机推荐