2016-11-27 2 views
3

私はハイパーとgit2の両方を同時に使っているものをビルドしようとしています。今、私はopensslが2回リンクされていることに問題があります。先端はshepmasterで私をCargos featuresに導いて、私はそれを試みたが、私はまだ固執している。私の知る限りGIT2とハイパーの両方を必要とされるOpenSSLを言うことができるようにgit2とhyperの両方を使う:opensslが複数回リンクされている

error: native library `openssl` is being linked to by more than one version of the same package, but it can only be linked once; try updating or pinning your dependencies to ensure that this package only shows up once 

    openssl-sys v0.7.17 
    openssl-sys v0.9.1 

私はcargo build時に取得しています正確なエラー

は次のとおりです。誰かが私が間違っていることを考えている人はいますか?私はハイパー(およびクッキーのための良い尺度)のデフォルト機能を無効にして以来、opensslはもう必要ないはずです。ロックファイルを調べて、 opensslが必要なのかどうかを確認しましたが、何も見つかりませんでした。しかし、私はまだエラーが発生します。残念ながら、貨物は依存がどこから来るのか教えてくれません。

ここでは私のCargo.tomlの依存関係のセクションとロックファイルです:

[dependencies] 
openssl = "0.9.1" 
hoedown = "5.0.0" 
iron = "0.4.0" 
webbrowser = "0.1.3" 
router = "0.4.0" 
staticfile = "0.3.1" 
clap = "2.18.0" 
lazy_static = "0.2.2" 
linked-hash-map = "0.3.0" 
params = "0.5.0" 
git2 = "0.6.1" 

[dependencies.yaml-rust] 
version = "0.3.4" 
features = ["preserve_order"] 

[dependencies.hyper] 
version = "0.9.12" 
default-features = false 

[dependencies.cookie] 
version = "0.2.5" 
default-features = false 

ここで興味深いのだ場合Cargo.lockです。

答えて

4

問題はのparamsとOpenSSLの組み合わせです:

[dependencies] 
openssl = "0.9.1" 
params = "0.5.0" 

params 0.5は機能serverで、マルチパート0.8が必要ですが、withoutdefault-features = false

[dependencies.multipart] 
features = ["server"] 
version = "0.8" 

multipart 0.8hyper 0.9が必要になりますことを意味します。ハイパー(デフォルトの機能を使用)にはopenssl 0.7が必要です。

最新のopensslバージョンに切り替えるにはハイパーにticketがあります。

+0

ありがとうございました!投稿されたJSON本体を解析したいだけです。私はちょうどparamsを落として、それを行うために何かを見つけなければならないでしょう。 – Machisuji

+0

@Machisuji私はそれを修正すべきparamsのための[pull request](https://github.com/iron/params/pull/31)を作成しました。 – wimh

+0

@Machisujiこれは修正されました。元のサンプルは現在動作しています。パラメータ0.5.0は[自動的に使用されます](http://doc.crates.io/specifying-dependencies.html)です。 – wimh

関連する問題