私はカーゴファイルに依存していますが、それはプラットフォーム、特にデフォルトの機能によって異なる必要があります。ここに私がやろうとしていることがあります:カーゴでプラットフォーム固有の依存関係が優先されるのはなぜですか?
[package]
name = "..blah.."
version = "..blah.."
authors = ["..blah.."]
[target.'cfg(target_os = "macos")'.dependencies]
hyper = { version = "0.9", default-features = false, features = ["security-framework"] }
[target.'cfg(target_os = "linux")'.dependencies]
hyper = { version = "0.9", default-features = true }
しかし、これは私がしたいと思わないです。私のMacでは、ちょうどhyper = "0.9"
を指定したかのように、下のターゲット行を使用しているようです。指定されたとおり、私は、私は、OpenSSLに関するエラーが出るcargo build
ない場合:
は貨物:私はこのようにそれを構築する場合、警告=#は、<のopenssl/ssl.h >
しかし、次のとおりです
[dependencies]
hyper = { version = "0.9", default-features = false, features = ["security-framework"] }
次に、正常に構築されます。これは、 "macos"のcfg
が機能していないことを示しています。
この作業を行うにはどうすればよいですか、具体的には、プラットフォームごとに異なる機能を使用する依存関係が必要な場合の解決方法を教えてください。
なぜこれがhttp://stackoverflow.com/q/29854912/155423の重複ではないでしょうか? – Shepmaster
上記の構文が[単体テスト](https://github.com/rust-lang/cargo/blob/master/tests/cfg.rs)のサンプルと一致するように見えるので、重複していないと思います。コミット](https://github.com/rust-lang/cargo/pull/2328/commits/f5d786e05600720ba4671caf5b598624103c8f72)。 – wimh
@Shepmasterも理論的には同じ問題を解決しようとしているので、私の質問は「なぜ私のカーゴファイルが依存関係の正しい構成を選択していないのか」と考えています。 – vcsjones