GCC kann nicht konfiguriert und installiert werden

GCC kann nicht konfiguriert und installiert werden

Ich habe GCC 4.5.1 heruntergeladen und weiß nicht, was ich als Nächstes tun soll. Ich habe im Installationsverzeichnis Anweisungen zum Konfigurieren, Erstellen und Installieren gefunden, kann damit aber immer noch nicht viel anfangen. Kann mir jemand Schritt für Schritt aufschreiben, wie ich diesen Prozess durchlaufen soll?
Sie sagen zum Beispiel so etwas wie:

        % mkdir objdir
        % cd objdir
        % srcdir/configure [options] [target]  

und ich verstehe, dass die erste Zeile verlangt, ein Verzeichnis zu erstellen, und die zweite verlangt, dorthin zu gehen, aber was ist mit der dritten und wie soll ich das ausführen? Soll ich ins Quellverzeichnis gehen und „Konfigurieren + Optionen + Ziel“ eingeben?

Antwort1

Im Ernst, wenn Sie nicht einmal verstehen, was srcdir/configure [options] [target]zu tun ist, sollten Sie GCC nicht selbst kompilieren. Aber wie Sie es verlangt haben ...

srcdir/configureist der Linux-Befehl zum Starten der Datei srcdir/configureaus dem aktuellen Verzeichnis (nicht aus "srcdir"!). Laut Installationsanleitung ist das aktuelle Verzeichnis "objdir", also das Verzeichnis, in dem Sie GCC erstellen möchten. Aus demInstallationsanleitung:

Wir gebrauchenQuellverzeichnisum auf das Quellverzeichnis der obersten Ebene für GCC zu verweisen; wir verwendenobjdirum auf das Build-/Objektverzeichnis der obersten Ebene zu verweisen. [...] Wir empfehlen dringend, GCC in einem von den Quellen getrennten Verzeichnis zu erstellen, das sich nicht im Quellbaum befindet.

„srcdir“ muss also der Pfad sein, in den Sie den GCC-Quellcode extrahiert haben, z. B. „/home/Benutzername/Desktop/gcc-4.5.1“, und „objdir“ muss ein Pfad sein, in dem Sie GCC erstellen möchten, z. B. „/tmp/gccbuild“. Wenn Sie Letzteres erstellt haben, können Sie mit der Build-Konfiguration fortfahren. Wechseln Sie also in einem Terminal in das Build-Verzeichnis und geben Sie „srcdir/configure“ ein (ersetzen Sie „srcdir“ durch den Quellcodepfad!!). Dies sollte den Build mit Standardeinstellungen und Ihrer aktuellen Architektur (höchstwahrscheinlich x86 oder x64) konfigurieren.

Für die erweiterte Konfiguration müssen Sie den Platzhalter [options] durch die Konfigurationsoptionen für z.B. gcc --with-gmp=/usr/localund andere Einstellungen ersetzen, die in den Autoconf-Skripten aufgeführt sind. Diese finden Sie auch in der Installationsanleitung unter der Überschrift „Distributor-Optionen“. Der Platzhalter [target] ist nicht erforderlich, da das Konfigurationsskript Ihre Architektur automatisch erkennt (so steht es in der Dokumentation).

Wie ich schon sagte, bauen Sie GCC nicht selbst, außer wenn es wirklich sein muss. Es scheint, als ob UbuntuMaverick wird in naher Zukunft GCC 4.5 haben, sodass Sie dann das Ubuntu-Paket abrufen können.

Antwort2

Unter Windows 7würdehabe Probleme beim Ausführen von Linux-Konfigurationsskripten oder sogar beim Ausführen der von Ihnen aufgelisteten Befehle. Das Erstellen von GCC unter Windows ist nichts für schwache Nerven (eigentlich ist das Erstellen von GCC überhaupt nichts für schwache Nerven).

Sie haben zwei praktische Möglichkeiten:

  1. Installieren Sie Cygwin und führen Sie den Build in seiner Bash-Shell aus. Cygwin ist eine Linux-Emulationsschicht für Windows. Das Problem dabei ist, dass die von Ihnen erstellten Anwendungen (einschließlich des Compilers) normalerweise Cygwin benötigen, um ausgeführt zu werden. Cygwin enthielt bereits den GCC-Compiler. Wenn Sie also keine bestimmte Version benötigen, müssen Sie ihn möglicherweise überhaupt nicht erstellen.

  2. Verwenden Sie MinGW. Sie könnten GCC wahrscheinlich unter MinGW/MSYS erstellen, aber das ist wahrscheinlich nicht nötig, da MinGW den Compiler bereits enthält. MinGW/GCC ermöglicht es, mit GCC erstellte Anwendungen als native Win32-Anwendungen auszuführen. Sie verwenden Microsofts VC++ C-Laufzeitbibliothek anstelle von GNU libc. Dies vereinfacht die Win32-Entwicklung, schränkt jedoch ein, welcher Linux-Code direkt erstellt werden kann.

verwandte Informationen