Portable Binärdateien mit Rust

8

Ich habe Probleme beim Erstellen einer portablen ausführbaren Datei mit Rost.

Das Ausführen einer ausführbaren Datei, die einfach mit cargo build auf Ubuntu erstellt wurde, schlägt mit

fehl %Vor%

Gebäude mit rustc ... -C link-args=-static kann nicht korrekt verlinkt werden (Ausgabe von ld ./test ):

%Vor%

Gibt es einen Weg dazu, außer dass man auf einem älteren System mit einer alten glibc-Version baut?

    
globin 05.10.2014, 12:14
quelle

2 Antworten

3

Glibc ist nicht statisch verknüpft (so wie wir es gerne gehabt hätten, es tut alles, um das zu verhindern). Daher sind die Systembibliotheken (libstd usw.) immer von der glibc-Version abhängig, auf der sie erstellt wurden. Dies ist der Grund, warum die Buildbots im Linux-Cluster mozilla alte Versionen von centos verwenden.

Siehe Ссылка und Ссылка

Leider zu diesem Zeitpunkt glaube ich, dass es keine Problemumgehung gibt, abgesehen davon, dass Sie sicherstellen, dass Sie auf einem System mit einem älteren glibc aufbauen, als Sie bereitstellen werden.

    
Graydon Hoare 24.02.2015, 18:10
quelle
-1

Um GLIBC-Fehler zu vermeiden, können Sie Ihre eigene Version von Rust gegen eine statische alternative libc, musl , kompilieren.

>

Holen Sie sich die neueste stabile Version von musl und erstellen Sie sie mit der Option --disable-shared :

%Vor%

baue dann Rust gegen musl:

%Vor%

dann bauen Sie Ihr Projekt

%Vor%

Weitere Informationen finden Sie im Abschnitt erweiterte Verknüpfungen in der Dokumentation.

>

Wie in der Originaldokumentation berichtet:

  

Sie müssen jedoch möglicherweise Ihre nativen Bibliotheken gegen musl neu kompilieren   bevor sie verlinkt werden können.

Sie können auch rostup verwenden.

Entfernen Sie den alten Rust, der von rustup.sh installiert wurde

%Vor%

Installieren Sie das Rost

%Vor%     
etreus 30.08.2016 11:43
quelle

Tags und Links