FeaturesとProfiles
条件付きコンパイル
「FeaturesとProfiles」はCoddyKit上の無料Learn Rust Codingレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLearn Rust Coding学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Learn Rust Codingコースには全4レッスンが含まれています。
フィーチャーとは
フィーチャーを使うと、コンパイル時にクレートのオプション部分を有効または無効にできます。クレートを柔軟にできるため、呼び出し側は使用する機能の分だけ負担すれば済みます。
フィーチャーの宣言
[features] テーブルでフィーチャーを定義します。各フィーチャーでは、別のフィーチャーやオプション依存関係を有効にできます。
[features]
default = ["json"]
json = []
fast_math = []条件付きコンパイル
cfg 属性でコードを条件分岐すると、フィーチャーが有効な場合にのみコンパイルされるようにできます。
#[cfg(feature = "json")]
fn export() {
println!("Exporting as JSON");
}
fn main() {
#[cfg(feature = "json")]
export();
}フィーチャーの有効化
呼び出し側では、依存関係の宣言またはコマンドラインでフィーチャーを有効にします。
[dependencies]
my_lib = { version = "1.0", features = ["fast_math"] }デフォルトフィーチャー
default フィーチャーは自動的に有効になります。default-features = false で無効にすると、最小構成のビルドを選択できます。
[dependencies]
my_lib = { version = "1.0", default-features = false }CLIでのフィーチャー
マニフェストを編集せず、コマンドごとにフィーチャーを切り替えることもできます。
cargo build --features fast_math
cargo run --no-default-features
cargo test --all-featuresプロファイルとは
プロファイルは、最適化レベルやデバッグ情報などのコンパイラー設定を制御します。組み込みのプロファイルには dev(デバッグ)と release があります。
devプロファイル
dev プロファイルは cargo build で使用されます。実行時の速度よりも、コンパイルの速さとデバッグのしやすさを優先します。
[profile.dev]
opt-level = 0
debug = truereleaseプロファイル
release プロファイル(--release とともに使用)は、バイナリを高速にするための最適化を有効にします。
[profile.release]
opt-level = 3
lto = true
strip = trueプロファイルの調整
どのプロファイルも細かく調整できます。たとえば dev ビルドで少しだけ最適化を有効にすると、依存関係のコンパイル時間を短く保ちながら、実行時の速度を向上できます。
[profile.dev]
opt-level = 1
[profile.dev.package."*"]
opt-level = 3フィーチャーとしてのオプション依存関係
オプション依存関係を指定すると、同じ名前のフィーチャーが暗黙的に作成されます。そのフィーチャーを有効にすると依存関係が取り込まれるため、ユーザーは必要な場合にだけ負荷の大きいクレートを選択できます。
[dependencies]
serde = { version = "1.0", optional = true }
[features]
serialize = ["dep:serde"]理解度チェック
フィーチャーが有効な場合にのみコードブロックをコンパイルする属性はどれですか?
まとめ
条件付きコンパイルのツールについて学びました:
[features]でオプション機能を宣言する#[cfg(feature = ...)]でフィーチャーごとにコードを有効化するdefault-features = falseで最小構成のビルドを選択するdevやreleaseなどのプロファイルで最適化とデバッグ設定を制御する
よくある質問
「FeaturesとProfiles」レッスンは無料ですか?
はい。「FeaturesとProfiles」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Learn Rust Codingコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Learn Rust Codingコースには全4レッスンが含まれています。
「FeaturesとProfiles」で何を学びますか?
条件付きコンパイル ブラウザで直接実行するハンズオンコードでLearn Rust Codingを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Learn Rust Codingを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのLearn Rust Codingは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「FeaturesとProfiles」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このLearn Rust Codingレッスンでコードを書いて実行できますか?
はい。すべてのLearn Rust Codingレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Cargoの基礎
- Cargo.toml
- ワークスペース
- FeaturesとProfiles