当我尝试进行货物构建时,我遇到了这个问题:
错误:本机库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:
无法理解为什么这不能编译以及如何解决这个问题。
谢谢你!
链接的工作方式是,您只能链接单个版本的本机库,否则最终会出现重复的符号。货物的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(使用前将#替换为@)