Intellij IDEA 2017 で新しい Rust「他のソースからのプロジェクト」を構築しているときに、UI を介してプロジェクトを実行できませんでした。
C:/Users/sjsui/.cargo/bin/cargo.exe 実行エラー: binターゲットが使用可能である必要があります
cargo run
プロセスは終了コード 101 で終了しました
ビルド構成で --bin ターゲットが提供されていないことに気づいたので、プロジェクトのターゲット フォルダーへのパスを配置しましたが、結果は同じでした。
C:/Users/sjsui/.cargo/bin/cargo.exe run --bin C:\Users\sjsui\exercism\rust\hello-world\target\debug エラー: 指定された bin ターゲットがありません
C:\Users\sjsui\exercism\rust\hello-world\target\debug
Cargo コマンドライン インターフェースを使用して新しい Rust プロジェクトを作成しようとしましたが、実行時に次のエラーが発生しました。
エラー: リンカーを実行できませんでした
link.exe
: システムは指定されたファイルを見つけることができません。(OS エラー 2) 注: MSVC ターゲットは MSVC リンカーに依存していますが、link.exe
見つかりませんでした注: VS 2013 または VS 2015 が Visual C++ オプションでインストールされていることを確認してください。
明らかに Visual C++ ビルド ツール 2017 をインストールする必要があり、現在インストール中です。これらのエラーは関連しているのでしょうか、それとも別の問題でしょうか?
ベストアンサー1
デフォルトでは、Cargo は ファイルをsrc/main.rs
パッケージのメイン バイナリ ターゲットと見なします。このファイルが存在せず、 に他のバイナリ ターゲットが定義されていない場合はCargo.toml
、このエラーが発生します。
文書によるとIntelliJ IDEAでRustプロジェクトを作成すると、バイナリ(アプリケーション)テンプレートを使用するsrc/main.rs
. これにより、 (ライブラリターゲットのデフォルトのルートファイル)の代わりにが返されますsrc/lib.rs
。コマンドラインでCargoを使用すると、次のようにアプリケーションパッケージを作成することもできます。cargo new hello
。
Cargo はデフォルトで を使って
--bin
バイナリ プログラムを作成します。ライブラリを作成するには を渡します--lib
。
--bin
コマンドで使用する場合cargo run
、引数は次のいずれかを参照します。[[bin]]
内のセクション、または内にセクションがない場合はCargo.toml
パターンに続くファイルsrc/bin/*.rs
( は引数で置き換えられます) 。たとえば、 は内の を含むセクションをコンパイルして実行するか、または内のを含むセクションをコンパイルして実行します。*
[[bin]]
Cargo.toml
cargo run --bin foo
src/bin/foo.rs
[[bin]]
name = "foo"
Cargo.toml