問題タブ [rust-cargo]

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 投票する
3 に答える
2686 参照

windows - OS ファミリに応じて異なる依存関係を持つ方法

プラットフォーム固有の依存関係を持つクロスプラットフォーム ライブラリを作成しています。1 つは UNIX のようなプラットフォーム用、もう 1 つは Windows 用です。これらのクレートは特定のプラットフォームでのみコンパイルされるため、通常、依存関係の下にすべてを追加することはできません。

実際の錆のコードでは、特定のプラットフォーム用に特定のコードをコンパイルするcfgなどの属性を使用します#[cfg(unix)]。依存関係については、Cargo.toml またはビルド スクリプトで同様のことを行いたいと考えています。現在、次のようなターゲット トリプレットを使用しています。

ただし、このリストはすべてを網羅しているわけではありません。私はアーキテクチャや ABI には関心がなく、OS ファミリだけに関心があります。そのため、UNIX のようなターゲット トリプルごとに一致する場合、リストは非常に長くなります。

カーゴが実行されているプラ​​ットフォームの OS ファミリによってのみ決定される、特定の依存関係を使用する方法はありますか? 何かのようなもの:

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

rust - Hyper をビルドできません - クレート名に無効な文字 `-` が含まれています

Github readme にリストされているハイパー サンプルを実行しようとしています。

Cargo.toml は次のようになります。

ただし、Cargo run を使用してビルドしようとすると、次のエラーが発生します。

「rustc-serialize」を「rustc_serialize」に変更できるかどうかを確認するために、これらのさまざまなクレートを調べました。これは、クレート名にハイフンを含めることができなくなったためです。しかし、私はそのようなものを見つけることができませんでした。Rustがまだ洗練されている間、このエラーに何度か遭遇する気がするので、私は本当にこの問題を解決したいと思っています.

編集: バージョンは次のとおりです: Rust: 1.0.0-beta.2 Hyper: 0.3.14 Cargo: 0.0.1-pre-nightly (2015-03-09 ビルド)

0 投票する
3 に答える
2949 参照

rust - 実行せずに Rust のサンプルをビルドする方法

Rust の例を実行せずにビルドする方法はありますか? 具体的には、Travis CI を使用して正常にビルドされた例をテストします。

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

rust - 「http」クレートをコンパイルできません

この例に従って、Rust を試し、単純な HTTP GET リクエストを実行しようとしています。まず、 を実行しcargo new request_learn --binてから、サンプル コードを貼り付けてmain.rs実行しましたcargo build

fail!マクロを持っていないようなので、ここでマクロを変更しました。次のビルドは言う

だから私は追加しますCargo.toml

そして、私は再び構築します

非常に長くて重複していたので、エラーメッセージをいくつかカットしました

何か不足していますか?Rust のモジュールとcargoドキュメントを調べていますが、道に迷っているようです。

0 投票する
2 に答える
2755 参照

ssl - 貨物でクレートを構築するときの無効な SSL 証明書

rand="0.3.0"依存関係 ( ) を定義した後、チュートリアル (推測ゲーム) の例を試しているときに、次のようになりました。

これを貨物レジストリの git リポジトリに追加しましたが、成功しませんでした:

どこを掘る?

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

rust - 同じ設定オプションでバイナリとライブラリをビルドする方法は?

質問の時点で、同じ貨物プロジェクトにビンとライブラリがあり、特定のrustc cfgオプションを使用してビンとライブラリをビルドしたい場合、機能しません。

いずれか一方をrustc cfgオプションで構築できますが、両方を構築することはできません。そして、lib をビルドしようとすると、bin がコンパイルされたときに、rustc オプションなしで lib が再コンパイルされます。

両方を行う方法はありますか? いずれにせよ、独自のビルド スクリプトを作成しなければならない運命にあるのでしょうか? もしそうなら、貨物を持つことのポイントは何ですか?

編集

わかりました、多分私は少し劇的でした

背景・展開

次のようなものがあったとします。

src/lib.rs

src/main.rs

そのため、dosomething の cfg オプションを使用してコンパイルすると、関数の 1 つのバージョンが取得されますが、構成がないと、「デフォルト」の動作などになります。

cargo rustc でコンパイルしようとすると、lib に cfg dosomething が設定されたバージョンの bin を取得できません。

貨物ですべてを実行できるようになったのは、次のとおりです。

最初のコマンドはcfgを使用してlibをコンパイルしますが、2番目のコマンドはbinを作成するためにcfgを使用せずにlibを再コンパイルします。

私が思いついた唯一の回避策は次のとおりです。

次のように、コマンドがコンパイルするために吐き出すものをコピーします。

次に実行します:

最後に、以前のrustcコマンドをコピーして貼り付け、cfgオプションが設定されたlibでbinをコンパイルします。

それが唯一の方法ですか?Cargo.toml にある場合でも、希望するrustc cfg オプションを取得するライブラリ/ビンをどうにかして指定できないのはなぜですか? それとも、私と私はそれを認識できませんか?

頼んだ人は…

Cargo.toml:

PS Rust と Cargo に取り組んでくれたすべての人に感謝します。全体として、仕事をするのに快適な環境であり、言語が大好きです。良い仕事を続けてください。