Rustで条件付きコンパイルマクロを使用する方法の例

アダムミラー

私が続いてきたかなり文書をしようとした例を再利用しますが、私は仕事に私のコードを取得することはできません。

私のCargo.tomlは次のようになります。

[package]
name = "Blahblah"
version = "0.3.0"
authors = ["ergh <[email protected]"]
[dependencies]

[[bin]]
name = "target"
path = "src/main.rs"

[features]
default=["mmap_enabled"]
no_mmap=[]
mmap_enabled=[]

cargo buildコマンドに渡す機能構成に基づいて、mmapとは異なるバッファーオリジンを使用してコードをローカルでテストしたいと思います私は私のコードにこれを持っています:

if cfg!(mmap_enabled) {
    println!("mmap_enabled bro!");
    ...
}
if cfg!(no_mmap) {
    println!("now it's not");
    ...
}

コンパイラーはどちらのifステートメント本体にもコードを認識しないため、両方のcfg!ステートメントがfalseと評価されていることがわかります。どうして?

Rust 0.10で条件付きコンパイルを読みましたか?機能する例を探しているので、完全に重複しているわけではないことはわかっています。

ホルヘイスラエルペーニャ

機能をテストする正しい方法はfeature = "name"少しスクロールするとリンクたドキュメントでわかるようにです。

これらのスイッチを有効または無効にする方法については、Cargoを使用している場合は、次の[features]セクション設定されますCargo.toml

[features]
# no features by default
default = []

# Add feature "foo" here, then you can use it. 
# Our "foo" feature depends on nothing else.
foo = []

これを行うと、Cargoはフラグをrustc次のように渡します

--cfg feature="${feature_name}"

これらのcfgフラグの合計により、どのフラグがアクティブ化されるか、したがってどのコードがコンパイルされるかが決まります。このコードを見てみましょう:

#[cfg(feature = "foo")]
mod foo {
}

cfg!マクロを使用する場合、これはにマップされcfg!(feature = "foo")ます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Objective-cで定義されたマクロを使用すると、Swiftの条件付きコンパイルが正しく機能しませんでした

分類Dev

Cでmain()を条件付きコンパイルする方法は?

分類Dev

条件付きコンパイル用のプリプロセッサマクロを定義する必要性を取り除く方法は?

分類Dev

Rustで条件付きコンパイルを使用した同じ関数の異なるバージョン

分類Dev

csprojで条件付きコンパイルシンボルを確認する方法

分類Dev

xmlで条件付きコンパイルシンボルを使用する方法はありますか

分類Dev

Rust 0.10での条件付きコンパイル?

分類Dev

マルチインデックスで条件付き選択を実行する方法をパンダ

分類Dev

Rustマクロはコンパイル時の文字列を作成できますか?

分類Dev

.NetStandardプロジェクトのOSプラットフォームに関する条件付きコンパイルシンボルを追加する方法

分類Dev

C ++プログラムでデバッグ/リリース条件付きコンパイルを取得する方法

分類Dev

任意のプログラム(例:dd)のコマンドラインでシグナルを使用/送信する方法

分類Dev

uwpで特定のSDKの条件付きコンパイラシンボルを定義する方法

分類Dev

MvvmCrossを使用したXamarinでの条件付きコンパイル

分類Dev

条件付きコンパイルのカスタム属性を定義する適切な方法は何ですか?

分類Dev

関数内のコードブロックを条件付きでコンパイルすることは可能ですか?

分類Dev

VBAのコンパイル時にConstを条件付きで設定する

分類Dev

条件付きコンパイル ブロック内の関数のようなマクロを解決できません

分類Dev

条件付きコンパイルの複数の条件を処理するための最良の方法

分類Dev

ストリームを使用してコレクションのループを条件付きで終了する方法

分類Dev

スタイル付きコンポーネントを使用して条件付きのdivにマージンを適用し、反応する方法は?

分類Dev

スタイル付きコンポーネントで{withTheme}を使用する方法。誰でもリアルタイムの例を挙げてください

分類Dev

Arduinoコードに条件付きコンパイルを提供する方法は?

分類Dev

Rust条件付きコンパイル属性でカバーされる行数は?

分類Dev

「SelectCase」を条件付きでコンパイルできますか?

分類Dev

SwiftでtvOS用に条件付きでコンパイルする方法

分類Dev

コンポーネントのアンマウントでuseEffectフックを使用して、条件付きでコードを実行する方法

分類Dev

条件付きコンパイルを管理するためのメイクファイルを取得するにはどうすればよいですか?

分類Dev

パンダは条件付きでセルの色を設定します(マルチインデックス)

Related 関連記事

  1. 1

    Objective-cで定義されたマクロを使用すると、Swiftの条件付きコンパイルが正しく機能しませんでした

  2. 2

    Cでmain()を条件付きコンパイルする方法は?

  3. 3

    条件付きコンパイル用のプリプロセッサマクロを定義する必要性を取り除く方法は?

  4. 4

    Rustで条件付きコンパイルを使用した同じ関数の異なるバージョン

  5. 5

    csprojで条件付きコンパイルシンボルを確認する方法

  6. 6

    xmlで条件付きコンパイルシンボルを使用する方法はありますか

  7. 7

    Rust 0.10での条件付きコンパイル?

  8. 8

    マルチインデックスで条件付き選択を実行する方法をパンダ

  9. 9

    Rustマクロはコンパイル時の文字列を作成できますか?

  10. 10

    .NetStandardプロジェクトのOSプラットフォームに関する条件付きコンパイルシンボルを追加する方法

  11. 11

    C ++プログラムでデバッグ/リリース条件付きコンパイルを取得する方法

  12. 12

    任意のプログラム(例:dd)のコマンドラインでシグナルを使用/送信する方法

  13. 13

    uwpで特定のSDKの条件付きコンパイラシンボルを定義する方法

  14. 14

    MvvmCrossを使用したXamarinでの条件付きコンパイル

  15. 15

    条件付きコンパイルのカスタム属性を定義する適切な方法は何ですか?

  16. 16

    関数内のコードブロックを条件付きでコンパイルすることは可能ですか?

  17. 17

    VBAのコンパイル時にConstを条件付きで設定する

  18. 18

    条件付きコンパイル ブロック内の関数のようなマクロを解決できません

  19. 19

    条件付きコンパイルの複数の条件を処理するための最良の方法

  20. 20

    ストリームを使用してコレクションのループを条件付きで終了する方法

  21. 21

    スタイル付きコンポーネントを使用して条件付きのdivにマージンを適用し、反応する方法は?

  22. 22

    スタイル付きコンポーネントで{withTheme}を使用する方法。誰でもリアルタイムの例を挙げてください

  23. 23

    Arduinoコードに条件付きコンパイルを提供する方法は?

  24. 24

    Rust条件付きコンパイル属性でカバーされる行数は?

  25. 25

    「SelectCase」を条件付きでコンパイルできますか?

  26. 26

    SwiftでtvOS用に条件付きでコンパイルする方法

  27. 27

    コンポーネントのアンマウントでuseEffectフックを使用して、条件付きでコードを実行する方法

  28. 28

    条件付きコンパイルを管理するためのメイクファイルを取得するにはどうすればよいですか?

  29. 29

    パンダは条件付きでセルの色を設定します(マルチインデックス)

ホットタグ

アーカイブ