Libelektra: Rust bindings só funcionam com dependência de caminho

Criado em 29 nov. 2019  ·  4Comentários  ·  Fonte: ElektraInitiative/libelektra

Usar a dependência de crates.io não funciona.
Só posso usar as ligações ferrugem se primeiro compilá-las no projeto Elektra e, em seguida, usar o diretório compilado (substituir macros) como uma dependência de caminho.

Etapas para reproduzir o problema

# 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

resultado esperado

Construir com sucesso

Resultado atual

Erro:

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

Comentários muito úteis

Está funcionando agora :)

Todos 4 comentários

Obrigado por denunciar este problema!

Parece que a encadernação das caixas não está atualizada ou o seu Elektra é muito antigo. Por exemplo, keyIsDirectBelow foi renomeado para keyIsDirectlyBelow. Ele foi renomeado pelo autor das ligações Rust, então talvez ele possa nos dar mais informações sobre o que exatamente está errado aqui: wink:

Obrigado pelo relatório!

Desde o lançamento mais recente do Elektra de 0.9.1 , ainda não consegui liberar os vínculos atualizados para crates.io . Portanto, você provavelmente está usando ligações de ferrugem 0.9 com Elektra 0.9.1 , que não é compatível. Vou lançar a atualização muito em breve e então você não deverá ter mais problemas. Eu avisarei você assim que terminar.

Acabei de publicar novas versões de elektra e elektra-sys em crates.io. Avise-me se tiver mais problemas.

Está funcionando agora :)

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

mpranj picture mpranj  ·  3Comentários

sanssecours picture sanssecours  ·  3Comentários

markus2330 picture markus2330  ·  3Comentários

mpranj picture mpranj  ·  4Comentários

mpranj picture mpranj  ·  3Comentários