// src/main.rs
fn main() {
println!("Hello, world!");
}
$ rustc --version
rustc 1.56.1 (59eed8a2a 2021-11-01)
$ cargo build --release
$ stat --format=%s target/release/hello-world
3655752
$ rustup default nightly
$ rustc --version
rustc 1.59.0-nightly (6db0a0e9a 2021-11-29)
$ cargo build --release
$ stat --format=%s target/release/hello-world
3636472
$ readelf -n target/release/hello-world
Отображаются заметки, найденные в: .note.gnu.build-id
Владелец Размер данных Description
GNU 0x00000014 NT_GNU_BUILD_ID (уникальный ID битовой строки сборки)
ID сборки: 79fa61baf79f590ad16f4abd9a8f083214085635
Отображаются заметки, найденные в: .note.ABI-tag
Владелец Размер данных Description
GNU 0x00000010 NT_GNU_ABI_TAG (метка версии ABI)
ОС: Linux, ABI: 3.2.0
$ file target/release/hello-world
target/release/hello-world: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=79fa61baf79f590ad16f4abd9a8f083214085635, for GNU/Linux 3.2.0, with debug_info, not stripped
$ upx -9 -o target/release/hello-world-min target/release/hello-world
Ultimate Packer for eXecutables
Copyright (C) 1996 - 2020
UPX 3.96 Markus Oberhumer, Laszlo Molnar & John Reiser Jan 23rd 2020
File size Ratio Format Name
-------------------- ------ ----------- -----------
3636472 -> 890268 24.48% linux/amd64 hello-world-min
Packed 1 file.
$ readelf -n target/release/hello-world-min
$ file target/release/hello-world-min
target/release/hello-world-min: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), statically linked, no section header
- Используются дефолтные значения
[profile.release]
- Репозиторий upx