我的货运文件中有一个依赖关系,需要根据平台,特别是默认功能的不同而有所不同。这是我想要做的:为什么在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