問題タブ [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.
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-lockfile
はCargo.lock
ファイルを作成し、 はファイルとサブディレクトリのすべての内容をcargo raze
作成します。)BUILD.bazel
remote
そして、bazel ビルドを実行するために、ルートに戻って を実行するとbazel build //web-api
、上記のエラーが発生します。
これは私のWORKSPACE
ファイルです:
これは私のweb-api/BUILD
ファイルです:
そして私のweb-api/cargo/Cargo.toml
ファイル:
何を試せばいいのかアイデアが尽きた。これを Bazel なしで、錆を使用するだけでコンパイルできます (ただし、明らかにファイルはわずかに異なる場所にあります)。Dockerコンテナ内でコンパイルできます。Bazel を正常に実行することができません (ベンダー モードまたはリモート モードのいずれかで、必然的にカーゴ レイズが必要です)。コンパイル ターゲットまたはナイトリー ビルドに不一致があり、適切に設定されていないと思いますが、そうではありません。それを診断または乗り越える方法を確認してください。
これは、私が試したファイル/構造のリポジトリへのリンクです。