1. ホーム
  2. rust

[解決済み] ローカルの未公開クレートを使うには?

2022-04-27 16:15:55

質問

ライブラリを作りました。

cargo new my_lib

で、そのライブラリを別のプログラムで使いたいんです。

cargo new my_program --bin

extern crate my_lib;

fn main {
    println!("Hello, World!");
}

これを動作させるためにはどうしたらよいのでしょうか?

同じプロジェクトフォルダーに入っていない。

.
├── my_lib
└── my_program

これで納得してもらえるといいのですが。

のようにパスを上書きできると思っていました。 カーゴガイド と書かれていますが

この機能を使用して、ローカルの未公開クレートを見つける方法をカーゴに指示することはできません。

Rustの最新安定版(1.3)を使用した場合です。

解決方法は?

実行ファイルに依存性セクションを追加します。 Cargo.toml で、パスを指定します。

[dependencies.my_lib]
path = "../my_lib"

または同等の代替TOML。

[dependencies]
my_lib = { path = "../my_lib" }

をチェックしてください。 依存関係の指定については、Cargo のドキュメントを参照してください。 を使えば、ローカルパスの代わりに git リポジトリを使う方法など、より詳細な情報を得ることができます。