Kann ich mit gcc remote kompilieren?

1074
user_ABCD

Ich habe einige eingebettete Server, auf denen RHEL mit begrenztem Speicher ausgeführt wird. Aus diesem Grund möchte ich gcc nicht installieren, weil es so groß ist.

Gibt es eine Möglichkeit, mit gcc remote zu kompilieren?

Ich kann mir nur über NFS oder SSHFS und das Teilen von Verzeichnissen Gedanken machen, aber ich glaube, es muss einen einfacheren Weg geben. Ich habe den Remote System Explorer über Eclipse verwendet, möchte jedoch nicht immer ein Eclipse-Projekt erstellen.

Ich habe wenig Wissen über Cross-Compilieren, aber ich glaube nicht, dass ich das brauche, da alle Systeme x86_64 sind. Erlaubt "Cross-Compiling" das Remote-Compilieren mit denselben nativen Architekturen?

0
[Cross-Compiling] (https://en.wikipedia.org/wiki/Cross_compiler) hat nichts mit Remote- oder lokalem Code zu tun. Mit einem Compiler, der überkompiliert werden kann, kann eine ausführbare Datei erstellt werden, die auf einer anderen als der nativen Architektur ausgeführt werden kann. Mit anderen Worten, ich kann Code auf meinem Windows / Linux-Computer schreiben, der über eine 64-Bit-CPU mit Intel Xeon IA64 verfügt, und diesen Code für mein Android-Tablet kompilieren, das über eine 32-Bit-ARM-basierte CPU verfügt. txtechhelp vor 8 Jahren 0
Danke für die Bestätigung, so habe ich es selbst verstanden. user_ABCD vor 8 Jahren 0

2 Antworten auf die Frage

0
Thomas Dickey

Wenn Sie kompilieren möchten, benötigen Sie einen RHEL-Server für die Entwicklung. Sie können die kompilierten Programme kopieren und auf Servern mit derselben RHEL-Version (und Bibliotheken) ausführen.

Die gemeinsame Nutzung von Dateien mit NFS oder SSHFS hilft nicht bei der Reduzierung des Arbeitsspeichers, auch wenn der Festplattenspeicher der limitierende Faktor wäre. Das Kompilieren mit gcc auf einer gemeinsam genutzten Festplatte würde jedoch nicht gut funktionieren.

Ich führe unterschiedliche RHEL-Versionen aus, einige davon 6,7, andere 6,6 und 6,4 andere. Sie haben auch unterschiedliche Mikroarchitekturen, sie sind alle x86_64, aber unterschiedliche Intel-Chips. Also ich möchte wirklich jeden kompilieren. user_ABCD vor 8 Jahren 0
@user_ABCD, verwenden Sie `asm`-Direktiven in Ihrer Quelle, die für die tatsächlichen Befehlssätze in den verschiedenen Intel-CPUs relevant sind, für die Sie kompilieren möchten? Wenn nicht, warum sind Sie so besorgt, wenn sie alle `x86_64`-kompatibel sind? txtechhelp vor 8 Jahren 0
@txtechhelp, ich bin nicht besorgt. Mehr von naiv und nahm nur an, dass es wichtig war. user_ABCD vor 8 Jahren 0
Beim Kompilieren auf 6.4 werden Sie wahrscheinlich keine Probleme haben, wenn Sie ausführbare Dateien nach 6.7 kopieren Thomas Dickey vor 8 Jahren 0
0
Jonas Stein

Verteiltes Kompilieren kann mit erfolgen distcc.

Sie können sogar versuchen, mit verschiedenen Architekturen crosscompilieren.

Benutzer von gentoo linux kompilieren ihr gesamtes System aus dem Quellcode. Sie können im gentoo Wiki viele Hinweise zu Crosscompiling, cflags und distcc finden, aber Sie können dieses Wissen natürlich auch in andere Distributionen übernehmen.

Dies kann Ihnen helfen, die Anzahl der Threads für einige Quellpakete zu reduzieren, wenn Sie nicht genügend RAM haben. Dieser Wille