2015-07-12 9 views
10

Sto costruendo un gioco Rust con Piston e sto cercando di usare lo SublimeLinter Rust package. Quando apro i miei file .rs gioco, ottengo questo errore linter:Come configurare SublimeLinter-contrib-rustc per trovare la cassa "pistone"?

extern crate piston; // linter error: "can't find crate for 'piston'" 

Se posso controllare il console Sublime, posso vedere che il linter sta trovando rustc:

SublimeLinter: rust activated: /usr/local/bin/rustc 

non lo faccio vedere eventuali messaggi di errore evidenti nella console. Ho inserito il pistone come dipendenza nel mio Cargo.toml e sono in grado di effettuare il cargo run con successo.

Sono un novizio Rust & SublimeLinter.

Ottengo un errore simile per qualsiasi importazione che ho inserito per primo; per esempio se mi muovo extern crate graphics; per essere la prima riga del file ottengo l'errore "non riesco a trovare cassa per 'grafica'".

MODIFICA: risulta abilitante l'impostazione "use-cargo" risolto il problema. Ho aggiunto un file ".sublimelinterrc" per il mio principale del progetto con questi contenuti:

{ 
    "linters": { 
    "rust": { 
     "use-crate-root": true, 
     "use-cargo": true 
    } 
    } 
} 
+1

Interessante, ho avuto questo problema troppo ma permettendo 'usare-cargo' fisso per me. Hai provato a impostare la radice della cassa e le impostazioni di use-crate-root? –

risposta

3

non sono stato in grado di riprodurre l'errore. Tuttavia, elencherò quello che ho fatto che sembrava funzionare. Forse vedrai un passo in cui ci siamo divisi, e questo ti darà un suggerimento su dove guardare.

ho installato Sublime Text 3. Ho scelto il canale stabile, costruire 3083. I installed Package Control, e quindi tre pacchetti:

  1. SublimeLinter (3.5.1)
  2. Sublime Linter-contrib-rustc (1.3.5)
  3. Rust (2015.05.28.16.43.21)

ho riavviato Sublime Text e ha aperto un mio progetto che utilizza merci e dipende da altri pacchetti. Ho aperto la console (ctrl - `) e enabled debug mode, che ha effetto al prossimo riavvio di Sublime.

Poiché ho l'installazione non standard di Rust, ho visto che Sublime non è stato in grado di eseguire rustc a causa della mancanza di librerie dinamiche. Ho quindi chiuso Sublime e l'ho aperto dal mio terminale: open /Applications/Sublime\ Text.app/Contents/MacOS/Sublime\ Text. Questo usa le mie variabili d'ambiente impostate dalla mia shell.

Ho visto che il linter si lamentava del fatto che il mio catalogo non disponesse del metodo main, quindi I enabled the use-cargo option.

SublimeLinter: rust output: 
error: main function not found 
error: aborting due to previous error 

Dopo aver modificato l'impostazione use-cargo, mi ha causato un errore di sintassi deliberata nel mio codice e ho visto che è stato evidenziato. Ho quindi erroneamente chiamato la cassa nella linea extern crate e ho visto che era evidenziata.

In nessun punto sembra esserci un problema nel trovare le casse.Potrei dire che è stato cargo in uso tramite la console:

SublimeLinter: rust output: 
    Updating registry `https://github.com/rust-lang/crates.io-index` 
Downloading rand v0.3.9 
... 
+1

Grazie! È venuto fuori che non ho abilitato correttamente l'impostazione "usa-carico". – Daryl

Problemi correlati