我的貨運文件中有一個依賴關係,需要根據平臺,特別是默認功能的不同而有所不同。這是我想要做的:爲什麼在Cargo中最後一個特定於平臺的依賴關係優先?
[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"
一樣。如果我cargo build
按照規定,我得到的錯誤方面的OpenSSL:
貨物:警告=#包括<的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理論上他們正試圖解決同樣的問題,所以我想我的問題是「爲什麼我的Cargo文件不能爲依賴關係選擇正確的配置」。 – vcsjones