2016-08-30 7 views
8

Podczas gdy widziałem dokumenty na temat korzystania z rustc bezpośrednio do zespołu wyjściowego, konieczności ręcznego wyodrębniania poleceń używanych przez Cargo i edycji ich do pisania jest nużące.Jak uzyskać moc montażową z budynku z Cargo?

Czy istnieje sposób na uruchomienie Cargo, który zapisuje pliki montażowe?

Odpowiedz

20

Można użyć cargo rustc polecenie Cargo wysłać argumenty rustc bezpośrednio:

cargo rustc -- --emit asm 
ls target/debug/deps/crate_name.s 

Dla zoptymalizowanego montażu:

cargo rustc --release -- --emit asm 
ls target/release/deps/crate_name.s 
15

Oprócz odpowiedzi kennytm użytkownika, można również użyć zmiennej RUSTFLAGS środowiska i użyj standardowych poleceń ładunków:

RUSTFLAGS="--emit asm" cargo build 
cat target/debug/deps/project_name-hash.s 

lub w trybie zwolnienia (z optymalizacje):

RUSTFLAGS="--emit asm" cargo build --release 
cat target/release/deps/project_name-hash.s 

można przekazać różne wartości parametru --emit, tym (ale nie tylko):

  • mir (Rust pośredni reprezentacja)
  • llvm-ir (pośrednia reprezentacja LLVM)
  • llvm-bc (LLVM byt e kod)
  • asm (montaż)