問題タブ [rust-rocket]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
689 参照

rust - Bazel で Rocket をコンパイルする

次のシナリオの実用的なプロトタイプを取得しようとしています:

  • 言語: さび ( rustc 1.45.0-nightly (ad4bc3323 2020-06-01))
  • フレームワーク: ロケット v0.4.4
  • ビルドツール: バゼル
  • プラットフォーム: Mac OS X / Darwin x64

実行bazel build //web-apiすると、以下のエラーが発生します。ファイルを見ると、Cargo.lockロケットのライブラリへの依存関係がhyperライブラリへの依存関係を指定しているためだと思いlog 0.3.9ます。なんらかの理由で、より最近の を使用していませんlog=0.4.x。そうは言っても、手動でビルドすると正常に動作するため、なぜこのライブラリをプルしているのかわかりません。

以下は私のディレクトリ構造です:

をセットアップするために、 github ページcargo-razeの指示に従って、次のことを行いました。

(generate-lockfileCargo.lockファイルを作成し、 はファイルとサブディレクトリのすべての内容をcargo raze作成します。)BUILD.bazelremote

そして、bazel ビルドを実行するために、ルートに戻って を実行するとbazel build //web-api、上記のエラーが発生します。

これは私のWORKSPACEファイルです:

これは私のweb-api/BUILDファイルです:

そして私のweb-api/cargo/Cargo.tomlファイル:

何を試せばいいのかアイデアが尽きた。これを Bazel なしで、錆を使用するだけでコンパイルできます (ただし、明らかにファイルはわずかに異なる場所にあります)。Dockerコンテナ内でコンパイルできます。Bazel を正常に実行することができません (ベンダー モードまたはリモート モードのいずれかで、必然的にカーゴ レイズが必要です)。コンパイル ターゲットまたはナイトリー ビルドに不一致があり、適切に設定されていないと思いますが、そうではありません。それを診断または乗り越える方法を確認してください。

これは、私が試したファイル/構造のリポジトリへのリンクです。