2017-12-10 13 views
1

とWebAssemblyモジュールを構築する際、次のように私は、単純な錆アプリを構築しました:「読み込みエラー対象指定」カーゴ

cargo new hello_world --bin 

を次のように私は錆コンパイラを使用してWebAssemblyにコンパイルすることができます:

rustc +nightly --target wasm32-unknown-unknown -O src/main.rs 

私は、外部依存関係を管理するために貨物を使用するようにしたいのですが、私はcargoを使用して、同じターゲット用にビルドする場合:

cargo build --release --target wasm32-unknown-unknown 

次のようにそれが失敗した:wasm32-unknown-unknownターゲットとして

$ cargo build --release --target wasm32-unknown-unknown 
error: failed to run `rustc` to learn about target-specific information 

Caused by: 
    process didn't exit successfully: `rustc - --crate-name ___ --print=file-names --target wasm32-unknown-unknown --crate-type bin --crate-type rlib` (exit code: 101) 
--- stderr 
error: Error loading target specification: Could not find specification for target "wasm32-unknown-unknown" 
    | 
    = help: Use `--print target-list` for a list of built-in targets 

答えて

1

は、ごく最近、それが毎晩ツールチェーンでのみ利用可能ですが、錆に追加されました。あなたが毎晩ツールチェーンを使用したいことを指定する必要があります。

cargo +nightly build --release --target wasm32-unknown-unknown 
#  ^^^^^^^^ 

直接rustcを呼び出すときにあなたはすでにこれをやっていた。

rustc +nightly --target wasm32-unknown-unknown -O src/main.rs 
#  ^^^^^^^^ 

あなたならばそれはおそらく簡単です:

  1. ツールチェーンを使用オーバーライドプロJECTディレクトリ:

    [build] 
    target = "wasm32-unknown-unknown" 
    

次に、あなただけのcargo build --releaseをすることができます:プロジェクトの.cargo/configにデフォルトのターゲットを設定し

$ rustup override set nightly 
  • 。 (今はデバッグモードを避けることをお勧めします)。

  • 関連する問題