Libelektra: Rust-Bindungen funktionieren nur mit Pfadabhängigkeit

Erstellt am 29. Nov. 2019  ·  4Kommentare  ·  Quelle: ElektraInitiative/libelektra

Die Verwendung der Abhängigkeit von crates.io funktioniert nicht.
Ich kann die Rostbindungen nur verwenden, wenn ich sie zuerst im Elektra-Projekt kompiliere und dann das kompilierte (Makros ersetzen) Verzeichnis als Pfadabhängigkeit verwende.

Schritte zum Reproduzieren des Problems

# 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

erwartetes Ergebnis

Erfolgreich bauen

Tatsächliche Ergebnis

Fehler:

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

Hilfreichster Kommentar

Es funktioniert jetzt :)

Alle 4 Kommentare

Vielen Dank für die Meldung dieses Problems!

Es scheint, als ob die Bindung der Kisten nicht auf dem neuesten Stand ist oder Ihre Elektra zu alt ist. ZB wurde keyIsDirectBelow in keyIsDirectlyBelow umbenannt. Es wurde vom Autor der Rust-Bindungen umbenannt, damit er uns vielleicht mehr Einblick geben kann, was hier genau falsch ist :wink:

Danke für den Bericht!

Seit dem letzten Elektra-Release von 0.9.1 bin ich noch nicht dazu gekommen, die aktualisierten Bindings auf crates.io freizugeben. Sie verwenden also wahrscheinlich Rostbindungen 0.9 mit Elektra 0.9.1 , was nicht kompatibel ist. Ich werde das Update sehr bald veröffentlichen und dann sollten Sie keine Probleme mehr haben. Ich melde mich sobald es fertig ist.

Ich habe gerade neue elektra und elektra-sys Versionen für crates.io veröffentlicht. Lassen Sie mich wissen, wenn Sie weitere Probleme haben.

Es funktioniert jetzt :)

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

mpranj picture mpranj  ·  3Kommentare

markus2330 picture markus2330  ·  3Kommentare

sanssecours picture sanssecours  ·  3Kommentare

sanssecours picture sanssecours  ·  4Kommentare

dominicjaeger picture dominicjaeger  ·  3Kommentare