GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie man ein komplexes Programm statisch verlinkt

Wenn Sie keine statische Binärdatei kompilieren können, habe ich mit Statifier gute Ergebnisse erzielt.


Die meisten autoconf erzeugt configure -Skript ermöglicht es Ihnen, einen statischen Build zu erstellen:

 ./configure --enable-static
 make

Wenn das nicht funktioniert, können Sie möglicherweise Linker-Flags über LDFLAGS übergeben , etwa so:

 ./configure LDFLAGS=-static

Ich nehme an, es verwendet gcc, um eine Reihe von C-Programmen zu kompilieren, obwohl Sie im Makefile nachsehen müssen, um das herauszufinden.

Wenn dies der Fall ist, können Sie die gcc-Zeilen im Makefile anpassen, um statisches Linken durchzuführen, obwohl dies je nach Struktur des Programms eine komplexe Änderung sein kann. Werfen Sie einen Blick auf man gcc, um zu sehen, wie das gemacht wird.

Mich würde interessieren, warum du statisch verlinkst. Haben Sie darüber nachgedacht, stattdessen die Vorverlinkung zu verwenden?

Sie sollten sich darüber im Klaren sein, dass es dabei zu Lizenzproblemen kommen kann, wenn nicht alle Komponenten GPL sind.


Ja, Sie müssen die Make-Datei bearbeiten und während des Links den Parameter -static zu gcc hinzufügen.


Linux
  1. Wie leite ich die Ausgabe eines Programms in eine Zip-Datei um?

  2. Ubuntu – Wie stellt man eine statische IP in Ubuntu ein?

  3. Statischer Link der gemeinsam genutzten Bibliotheksfunktion in gcc

  4. Wie mache ich ein atomares Inkrement und hole es in C?

  5. So fügen Sie eine statische Bibliothek in ein Makefile ein

So installieren Sie GCC unter CentOS 7

So konfigurieren Sie Linux als statischen Router

Gewusst wie:Einführung in die Programmierung – Flusssteuerung

Geniale Möglichkeiten zum Ausführen eines Programms unter Linux

Wie man ein C-Programm unter Linux schreibt und ausführt

So konfigurieren Sie eine statische IP-Adresse auf einem Linux-System