Cのような言語では、オブジェクトファイル、ライブラリ、および実行可能ファイルの3つの異なる翻訳単位を扱います。私が正しく理解していれば、Rustは最初をスキップしました。つまり、プロジェクトを複数の翻訳単位に分割したい場合は、このblogに示すようにローカルの箱を使用する必要があります。ローカルライブラリへの依存としてのExternライブラリ
コード内にextern crate(E)を使用すると、すべてのCargo.toml
の依存関係にEを含める必要があります(つまり、自分のローカルlibboxとバイナリクレート)。
質問:
- これはEのコードが最終的なバイナリに数回含まれていることを意味していますか?
- Eのバージョンを更新したい場合は、すべて
Cargo.toml
ファイルを変更する必要があります。 「共通」の依存関係を指定できる代替方法はありますか? - 引用したアプローチは慣用的ですか?可能ではあるが、錆のコミュニティは、私は動的ライブラリを使用すると、一部では解決策になることを承知しているワークスペース
での横にサブクレートを提唱していないようです。しかし、私のプロジェクトは、動的ライブラリをサポートしない埋め込み型のプロジェクトです。
これは私の個人的な印象です。私がここで間違っていると申し訳ありません。