Я пытаюсь создать статический исполняемый файл с Rust. Я не пытаюсь статически связать определенную библиотеку, я пытаюсь создать исполняемый файл, который вообще не использует динамическую компоновку. У меня есть следующий (иначе работающий) тест:
$ cat hello.rs
fn main()
{
print!("Hello, world!\n");
}
$ rustc hello.rs -o hello
$ file hello
hello: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV),
dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, [etc]
Обратите внимание на dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2
. Вместо статических исполняемых файлов statically linked
. (И в моем случае corrupted section header size
, хотя я был бы приятно удивлен, если бы смог убедить Rust воспроизвести это.)
Какие параметры мне нужно передать в rustc
, чтобы заставить его генерировать фактический статический исполняемый файл (для конкретности: тот, который даже file
согласен, статически связан).