Po znalezieniu Rusta i przeczytaniu dwóch pierwszych rozdziałów dokumentacji uważam, że podejście i sposób, w jaki zdefiniowali język, są szczególnie interesujące. Postanowiłem więc zmoczyć palce i zacząłem od Hello world ...
Zrobiłem to na Windows 7 x64, przy okazji.
fn main() {
println!("Hello, world!");
}
Wydając cargo build
i patrząc na wynik w targets\debug
, znalazłem wynikowy .exe
3 MB. Po kilku poszukiwaniach (dokumentacja flag linii poleceń cargo jest trudna do znalezienia ...) znalazłem --release
opcję i stworzyłem kompilację wydania. Ku mojemu zdziwieniu rozmiar .exe zmniejszył się tylko nieznacznie: 2,99 MB zamiast 3 MB.
Tak więc, wyznając, że jestem nowicjuszem w Rusta i jego ekosystemie, spodziewałem się, że język programowania systemów stworzy coś zwartego.
Czy ktoś może wyjaśnić, do czego Rust kompiluje się, jak to możliwe, że tworzy tak ogromne obrazy z programu 3-liniowego? Czy kompiluje się do maszyny wirtualnej? Czy istnieje polecenie strip, które przegapiłem (informacje o debugowaniu w kompilacji wydania?)? Coś jeszcze, co mogłoby pozwolić zrozumieć, co się dzieje?