Rustバイナリは、 rust_binaryモジュールタイプを使用して生成できます。たとえば、以下に示すように:
rust_binary {
name: "hello_rust",
srcs: ["src/hello_rust.rs"],
}
同様に、 rust_binary_hostを使用して、ホストのみのモジュールを提供できます。
注目すべきrust_binaryプロパティ
重要な共通プロパティに加えて、次のプロパティも重要であるか、 rust_binaryモジュールタイプに固有の固有の動作を示します。
- static_executable :このバイナリを静的バイナリとしてビルドし、
prefer_rlibがtrueであることを意味します。完全に静的な実行可能ファイルは、バイオニックターゲットに対してのみ生成できます。非バイオニックターゲットの場合、これは、prefer_rlibがtrueであることを意味するだけですが、それでもlibcとlibdlを動的にリンクします。 - priority_rlib: rustlibsリンケージを変更して、デバイスターゲットのデフォルトで
rustlibsリンケージを選択し、rlibをデバイスターゲットのlibstdとしてrlibします。これはホストターゲットのデフォルトの動作であり、そのため、ホストターゲットに影響を与えないことに注意してください。
リンケージ
デフォルトでは、デバイスをターゲットにしているrust_binaryモジュールは常にlibstdに対して動的にリンクされ、 prefer_rlibがtrueでない限り、デフォルトではrustlibsにリストされている依存関係に対してdylibライブラリを優先します。完全に静的なバイナリが必要な場合は、 static_executableプロパティを参照してください。
ホストモジュールは常にlibstdに対して静的にリンクされており、デフォルトではrustlibsにリストされている依存関係に対してrlibライブラリを優先します。