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

Wie vermeide ich STT_GNU_IFUNC-Symbole in Ihrer Binärdatei?

Im Allgemeinen unterstützen UNIX-Systeme die Rückwärts-Binärkompatibilität (eine Binärdatei, die auf einem alten Computer erstellt wurde, läuft weiterhin auf einem neueren), aber nicht umgekehrt. Sie können nicht erwarten, dass eine auf einem neuen System erstellte Binärdatei auf einem älteren läuft. STT_GNU_IFUNC ist nur die erste von vielen Problemen, denen Sie begegnen werden.

Wenn Sie eine Binärdatei auf einer neueren Maschine erstellen müssen, die auf einer älteren läuft, lesen Sie dieses Dokument.

Früher gab es "apgcc:Ein GCC-Wrapper zum Erstellen portabler Binärdateien", der dies einfach machte (es wird von oben referenziert), aber es scheint weg zu sein;-(

Die einfachste Option ist, auf einem alten Rechner zu bauen (ich habe früher auf RedHat 6.2 gebaut, und die resultierende Binärdatei lief überall ). Sie müssen RH-6.2 nicht wirklich auf einem physischen Computer ausführen, sondern bringen es einfach in einer VM hoch.

Die andere relativ einfache Möglichkeit besteht darin, chroot einzubauen , wieder unter Verwendung von Tools und Bibliotheken einer alten Distribution (z. B. RH-6.2).


Da APGCC nicht mehr verfügbar zu sein scheint (außer vielleicht hier und hier). Diese Glibc-Header scheinen derzeit der bequemste Weg zu sein, portable Linux-Binärdateien aus einem C-Code zu generieren, indem eine der älteren Header-Dateien eingebunden wird.


Linux
  1. So ändern Sie den Hostnamen Ihres Linux-Rechners, ohne neu starten zu müssen

  2. So finden Sie heraus, welcher DNS-Server auf Ihrem Computer konfiguriert ist Linux/Windows/OSX

  3. Wie man Linux herunterfährt oder neu startet

  4. So kompilieren Sie eine 32-Bit-Binärdatei auf einem 64-Bit-Linux-Rechner mit gcc/cmake

  5. Wie erhalte ich die MAC-Adresse Ihres Computers mit einem C-Programm?

So zeichnen Sie Ihre Terminalsitzung unter Linux auf

So installieren Sie Windows 10 in Virtualbox unter Linux

So testen Sie das Plasma Mobile OS auf Ihrem Computer

So ändern Sie Ihren Hostnamen unter Linux

So erhalten Sie Ihre IP-Adresse unter Linux

Wie löschen Sie Ihren Visual Studio Code-Cache auf einem Mac/Linux-Computer?