36

Cargoを使用してソース コードを条件付きでコンパイルしたいのですがcfg、しばらくグーグルした後、解決策は を使用することのようcargo --featuresです。

http://doc.crates.io/manifest.html

いくつか追加してみました

#[cfg(feature = "foo")]

ソースコードと

cargo build --features foo

、しかしそれは言う

Package `xxx v0.0.1 (file:///C:/yyy/xxx)` does not have these features: `foo`

貨物に機能を識別させるにはどうすればよいですか? に何かを追加する必要がありCargo.tomlますか?

私が使用しているのバージョンは次のとおりrustcです。cargo

C:\>rustc --version
rustc 0.13.0-nightly (42deaa5e4 2014-12-16 17:51:23 +0000)

C:\>cargo --version
cargo 0.0.1-pre-nightly (5af754d 2014-12-18 01:50:48 +0000)
4

2 に答える 2

36

に既存の機能を導入する必要がありますCargo.toml

次のようにして、条件付きでコンパイルできました。

  • でセクションをCargo.toml作成しfeatures、特定の機能名を導入します。

    [features]
    
    customfeature = [] # feature has no explicit dependencies
    

    機能に特定の依存関係を持たせたい場合は、ドキュメントの例を確認してください。

  • コードで、使用します#[cfg(feature="customfeature")]

  • 走るcargo build --features customfeature

手順 2 と 3 は問題ないように思われるので、おそらく に問題があるはずCargo.tomlです。

于 2014-12-24T09:09:52.863 に答える