Ich spiele mit Chroot-Umgebungen herum und hätte gerne einen tragbaren C-Compiler, damit ich in jeder Umgebung problemlos einige grundlegende Build-Tools einrichten kann, ohne zu viele Bibliotheken verschieben zu müssen.
Gcc scheint ziemlich aufgebläht für das, was ich tun möchte, aber wenn es einigermaßen einfach ist, ein statisches Gcc zu erstellen, würde es mir nichts ausmachen, ein paar Dutzend Megabyte.
Ich schaue mir auch den Tiny C Compiler an, der kleiner ist, aber dennoch einen beeindruckenden Funktionsumfang aufweist. Wenn Sie jedoch ./configure --help im Quellverzeichnis ausführen, wird keine Option zum statischen Erstellen von tcc aufgeführt, und ich bin mir nicht sicher, wie dies anders erfolgen könnte.
c
gcc
compiler
static-linking
math4tots
quelle
quelle
Antworten:
Das Erstellen einer statischen Binärdatei sollte so einfach sein wie das Ausführen von gcc mit -static, oder wenn ld direkt aufgerufen wird, verwenden Sie -Bstatic. Versuchen
nach dem Laufen
configure
. Wenn dies fehlschlägt, sind die Ergebnisse offensichtlich, z. B. Flöße undefinierter Referenzen zur Verbindungszeit.quelle
make CFLAGS=-static
gerade versucht . Machen Sie Drucke eine Warnungdlopen
, und wenn ich versuche, die ausführbare Datei in der Chroot-Umgebung auszuführen, werden/usr/lib/crt1.o .. crti,o .. crtn.o
keine Fehler gefunden. Ist es das, was Sie mit "undefinierten Referenzen zur Linkzeit" gemeint haben?Sie können auch eine vorkompilierte Version mit static-get abrufen
quelle