Um GLIBC-Fehler zu vermeiden, können Sie Ihre eigene Version von Rust gegen eine statische alternative libc, musl, kompilieren.
die letzte Version von MUSL Holen und bauen es mit der Option --disable-shared
:
$ mkdir musldist
$ PREFIX=$(pwd)/musldist
$ ./configure --disable-shared --prefix=$PREFIX
dann Rust gegen MUSL bauen:
$ ./configure --target=x86_64-unknown-linux-musl --musl-root=$PREFIX --prefix=$PREFIX
dann bauen Ihr Projekt
$ echo 'fn main() { println!("Hello, world!"); }' > main.rs
$ rustc --target=x86_64-unknown-linux-musl main.rs
$ ldd main
not a dynamic executable
Für Weitere Informationen finden Sie im Abschnitt advanced linking der Dokumentation.
Wie in der ursprünglichen Dokumentation berichtet:
Allerdings müssen Sie Ihre nativen Bibliotheken gegen MUSL neu kompiliert werden, bevor sie gegen verknüpft werden können.
Sie können auch rustup verwenden.
alte Rust installiert Entfernen von rustup.sh
$ sudo /usr/local/lib/rustlib/uninstall.sh # only if you have
$ rm $HOME/.rustup
Installieren rustup
$ curl https://sh.rustup.rs -sSf | sh
$ rustup default nightly #just for ubuntu 14.04 (stable Rust 1.11.0 has linking issue)
$ rustup target add x86_64-unknown-linux-musl
$ export PATH=$HOME/.cargo/bin:$PATH
$ cargo new --bin hello && cd hello
$ cargo run --target=x86_64-unknown-linux-musl
$ ldd target/x86_64-unknown-linux-musl/debug/hello
not a dynamic executable
Du über "portable" Binärdateien zu fragen, aber Sie nur Liste ein System (Ubuntu) ohne Versionsinformationen. Sind mehrere Systeme beteiligt? Wenn ja, was sind die Distributionen und ihre Versionen? – Shepmaster