バイナリモジュール

Rustバイナリは、 rust_binaryモジュールタイプを使用して生成できます。たとえば、以下に示すように:

rust_binary {
    name: "hello_rust",
    srcs: ["src/hello_rust.rs"],
}

同様に、 rust_binary_hostを使用して、ホストのみのモジュールを提供できます。

注目すべきrust_binaryプロパティ

重要な共通プロパティに加えて、次のプロパティも重要であるか、 rust_binaryモジュールタイプに固有の固有の動作を示します。

  • static_executable :このバイナリを静的バイナリとしてビルドし、 prefer_rlibtrueであることを意味します。完全に静的な実行可能ファイルは、バイオニックターゲットに対してのみ生成できます。非バイオニックターゲットの場合、これは、 prefer_rlibtrueであることを意味するだけですが、それでもlibclibdlを動的にリンクします。
  • priority_rlib: rustlibsリンケージを変更して、デバイスターゲットのデフォルトでrustlibsリンケージを選択し、 rlibをデバイスターゲットのlibstdとしてrlibします。これはホストターゲットのデフォルトの動作であり、そのため、ホストターゲットに影響を与えないことに注意してください。

リンケージ

デフォルトでは、デバイスをターゲットにしているrust_binaryモジュールは常にlibstdに対して動的にリンクされ、 prefer_rlibtrueでない限り、デフォルトではrustlibsにリストされている依存関係に対してdylibライブラリを優先します。完全に静的なバイナリが必要な場合は、 static_executableプロパティを参照してください。

ホストモジュールは常にlibstdに対して静的にリンクされており、デフォルトではrustlibsにリストされている依存関係に対してrlibライブラリを優先します。