Libelektra: Rustバインディングは、パスの依存関係でのみ機能します

作成日 2019年11月29日  ·  4コメント  ·  ソース: ElektraInitiative/libelektra

crates.ioからの依存関係の使用は機能しません。
rustバインディングを使用できるのは、最初にElektraプロジェクトでコンパイルしてから、コンパイル済み(マクロの置換)ディレクトリをパスの依存関係として使用する場合のみです。

問題を再現する手順

# Create a new cargo project
cargo new test-elektra-rs
cd test-elektra-rs
# Add the elektra dependency
echo "elektra = \"0.9\"" >> Cargo.toml
# Build the project
cargo build

期待される結果

ビルドの成功

実結果

エラー:

error[E0425]: cannot find function `keyIsDirectBelow` in crate `elektra_sys`
   -->CARGO_DIR/registry/src/github.com/elektra-0.9.0/src/readable.rs:231:31
    |
231 |         unsafe { elektra_sys::keyIsDirectBelow(other.as_ref(), self.as_ref()) == 1 }
    |                               ^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `keyIsDirectlyBelow`

error[E0425]: cannot find value `KDB_O_NOCASE` in crate `elektra_sys`
  --> CARGO_DIR/registry/src/github.com/elektra-0.9.0/src/keyset.rs:24:43
   |
24 |         const KDB_O_NOCASE = elektra_sys::KDB_O_NOCASE as elektra_sys::option_t;
   |                                           ^^^^^^^^^^^^ help: a constant with a similar name exists: `KDB_O_NONE`

error[E0425]: cannot find value `KDB_O_WITHOWNER` in crate `elektra_sys`
  --> CARGO_DIR/registry/src/github.com/elektra-0.9.0/src/keyset.rs:26:46
   |
26 |         const KDB_O_WITHOWNER = elektra_sys::KDB_O_WITHOWNER as elektra_sys::option_t;
   |                                              ^^^^^^^^^^^^^^^ not found in `elektra_sys`

error[E0425]: cannot find value `KDB_O_NOALL` in crate `elektra_sys`
  --> CARGO_DIR/registry/src/github.com/elektra-0.9.0/src/keyset.rs:28:42
   |
28 |         const KDB_O_NOALL = elektra_sys::KDB_O_NOALL as elektra_sys::option_t;
   |                                          ^^^^^^^^^^^ help: a constant with a similar name exists: `KDB_O_NONE`

error: aborting due to 4 previous errors

For more information about this error, try `rustc --explain E0425`.
error: could not compile `elektra`.

To learn more, run the command again with --verbose.
lanrust

最も参考になるコメント

それは今働いています:)

全てのコメント4件

この問題を報告していただきありがとうございます。

木枠のバインディングが最新ではないか、エレクトラが古すぎるようです。 たとえば、keyIsDirectBelowはkeyIsDirectlyBelowに名前が変更されました。 Rustバインディングの作成者によって名前が変更されたので、ここで正確に何が間違っているのかについて、彼は私たちにもっと洞察を与えることができるかもしれません:wink:

報告ありがとうございます!

0.9.1の最新のElektraリリース以来、更新されたバインディングをcrates.ioにリリースすることはまだできていません。 したがって、おそらく互換性のないElektra 0.9.1でrust-bindings 0.9しています。 すぐにアップデートをリリースします。そうすれば、もう問題はないはずです。 完了したらお知らせします。

新しいelektra elektra-sysバージョンと

それは今働いています:)

このページは役に立ちましたか?
0 / 5 - 0 評価