[解決済み] Cargoで複数のバイナリをビルドするにはどうしたらいいですか?
2022-04-24 06:18:36
質問
を使ったプロジェクトを作りたいのですが、どうすればいいですか?
daemon
と
client
で、unixのソケットで接続します。
A
client
と
daemon
は2つのバイナリを必要としますが、どのようにして
Cargo
を使用して、2つの異なるソースから2つのターゲットをビルドすることはできますか?
ちょっとファンタジックに付け加えると、このように
library
のメイン部分には
daemon
で、それを包むバイナリを用意し、ソケットで通信するだけです。
つまり、このようなツリー型アーキテクチャになっているわけです。
├── Cargo.toml
├── target
| └── debug
| ├── daemon
│ └── client
└── src
├── daemon
│ ├── bin
│ │ └── main.rs
│ └── lib
│ └── lib.rs
└── client
└── bin
└── main.rs
両方の関心事を管理する1つの実行ファイルを作ることもできますが、よほど良い習慣でない限り、それは私がしたいことではありません。
どのように解決するのですか?
複数のバイナリを指定するには
[[bin]]
というように
ここで
:
[[bin]]
name = "daemon"
path = "src/daemon/bin/main.rs"
[[bin]]
name = "client"
path = "src/client/bin/main.rs"
ヒント: もし、これらのファイルを
src/bin/daemon.rs
と
src/bin/client.rs
という名前の2つの実行形式が得られます。
daemon
と
client
にあるすべてのファイルをCargoがコンパイルするので
src/bin
を自動的に同名の実行ファイルに変換します。この慣習に従わない場合のみ、上記のスニペットのように名前とパスを指定する必要があります。
関連
-
[解決済み】ある値とその値への参照を同じ構造体に格納できないのはなぜですか?
-
[解決済み】Rustで文字列を分割する方法は?
-
[解決済み】RustプログラムがCargoパッケージからメタデータにアクセスする方法は?
-
[解決済み] このクエスチョンマークの演算子は何についてですか?
-
[解決済み] CopyとCloneの違いは何ですか?
-
[解決済み] Iterator(またはその他の trait)を返す正しい方法は何ですか?
-
[解決済み] Rust の 128 ビット整数 `i128` は 64 ビットシステムでどのように動作するのでしょうか?
-
[解決済み] ローカルの未公開クレートを使うには?
-
[解決済み] カスタムステップで範囲を反復処理するには?
-
[解決済み] Stringを&'static strに変換する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] RustのRc::clone(&rc)とrc.clone()は何か違いがあるのでしょうか?また、それによるコンパイルの最適化はあるのでしょうか?
-
[解決済み] Rustのユニットテストでprintln! が動作しないのはなぜ?
-
[解決済み】ライブラリとバイナリの両方を持つRustパッケージ?
-
[解決済み】Rustの実行ファイルはなぜこんなに巨大なのですか?
-
[解決済み】Rustの正確な自動再参照のルールは?
-
[解決済み] CopyとCloneの違いは何ですか?
-
[解決済み] クロージャがFn、FnMut、FnOnceを実装するのはどんなとき?
-
[解決済み] Rust の 128 ビット整数 `i128` は 64 ビットシステムでどのように動作するのでしょうか?
-
[解決済み】iterとinto_iterの違いは何ですか?
-
[解決済み] Rust構造体の変数を初期化する、より速い/より短い方法はありますか?