VorwortC, C++ usw. erfordern diesen Compiler GCC. Kürzlich fragte mich ein DBA-Freund, ob bei der Installation einer MySQL-Datenbank auf dem Betriebssystem RHEL7.6 eine höhere Version von GCC erforderlich sei. Nach einigen Recherchen stellte ich fest, dass es viele Fallstricke gibt. Ich habe diesen Artikel zusammengefasst und mit Ihnen geteilt. 1. Aktuelle gcc-Version[root@rhel76 ~]# gcc -v Integrierte Spezifikationen verwenden. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper Ziel: x86_64-redhat-linux Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux Thread-Modell: POSIX gcc Version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) Aus dem Obigen können wir ersehen, dass die aktuelle Version 4.8.5 ist. Dieses Mal haben wir auf 10.1.0 aktualisiert 2. Installieren Sie gcc--Download-Adresse: https://mirrors.aliyun.com/gnu/gcc/gcc-10.1.0/ [root@rhel76 ~]# tar -vxf gcc-10.1.0.tar.gz [root@rhel76 gcc-10.1.0]# mkdir build [root@rhel76 gcc-10.1.0]# cd build/ [root@rhel76 build]# ../configure --prefix=/usr/local/gcc-10.1.0/ --enable-checking=release --enable-languages=c,c++ --disable-multilib Build-Systemtyp wird geprüft … x86_64-pc-linux-gnu Hostsystemtyp wird geprüft … x86_64-pc-linux-gnu Zielsystemtyp wird geprüft … x86_64-pc-linux-gnu Suche nach einer BSD-kompatiblen Installation … /usr/bin/install -c prüfe ob ln funktioniert... ja überprüfe, ob ln -s funktioniert... ja Suche nach einem Sed, der die Ausgabe nicht abschneidet … /usr/bin/sed Suche nach gawk... gawk Überprüfung auf Libatomic-Unterstützung ... ja Überprüfung auf Libitm-Unterstützung ... ja Überprüfung auf Libsanitizer-Unterstützung ... ja Suche nach Libvtv-Unterstützung … ja Suche nach libhsail-rt-Unterstützung … ja Suche nach Libphobos-Unterstützung … ja Suche nach gcc... gcc prüfen, ob der C-Compiler funktioniert... ja Überprüfung des Standardausgabedateinamens des C-Compilers: a.out Überprüfung des Suffixes ausführbarer Dateien … prüfen, ob wir Cross-Compiling durchführen... nein Überprüfung des Suffixes von Objektdateien... o Überprüfen, ob wir den GNU C-Compiler verwenden ... ja Überprüfen, ob gcc -g akzeptiert... ja Suche nach GCC-Option zum Akzeptieren von ISO C89 … keine erforderlich Suche nach g++... g++ Überprüfen, ob wir den GNU C++-Compiler verwenden ... ja Überprüfen, ob g++ -g akzeptiert... ja Überprüfen, ob G++ -static-libstdc++ -static-libgcc akzeptiert... nein Suche nach Gnatbind ... nein Suche nach Gnatmake ... nein Überprüfen, ob der Compilertreiber Ada versteht ... nein Überprüfen, wie gebootet-basierte Objekte verglichen werden ... cmp --ignore-initial=16 $$f1 $$f2 Suche nach objdir...libs Überprüfung auf die richtige Version von gmp.h ... nein Konfigurieren: Fehler: Zum Erstellen von GCC sind GMP 4.2+, MPFR 3.1.0+ und MPC 0.8.0+ erforderlich. Versuchen Sie die Optionen --with-gmp, --with-mpfr und/oder --with-mpc, um Folgendes anzugeben: Der Quellcode dieser Bibliotheken ist zu finden unter ihren jeweiligen Hosting-Sites sowie bei https://gcc.gnu.org/pub/gcc/infrastructure/. Siehe auch http://gcc.gnu.org/install/prerequisites.html für weitere Informationen. Wenn Sie haben GMP, MPFR und/oder MPC aus einem Vertriebspaket eines Anbieters bezogen, Stellen Sie sicher, dass Sie sowohl die Bibliotheken als auch den Header installiert haben Dateien. Sie können sich in separaten Paketen befinden. Aus dem Protokoll geht der folgende Fehler hervor, daher installieren wir jeden einzelnen davon: configure: error: Building GCC requires GMP 4.2+, MPFR 3.1.0+ and MPC 0.8.0+. 3.gmp-Installation[root@jeames007 ~]# tar -vxf gmp-5.0.1.tar.bz2 [root@jeames007 ~]# cd gmp-5.0.1/ [root@jeames007 gmp-5.0.1]# ./configure --prefix=/usr/local/gmp-5.0.1 [root@jeames007 gmp-5.0.1]# machen [root@jeames007 gmp-5.0.1]# make install make[4]: Verlasse das Verzeichnis `/root/gmp-5.0.1' make[3]: Verlasse das Verzeichnis `/root/gmp-5.0.1' make[2]: Verlasse das Verzeichnis `/root/gmp-5.0.1' make[1]: Verlasse das Verzeichnis `/root/gmp-5.0.1' 4.MPFR-Kompilierung[root@jeames007 ~]# tar -vxf mpfr-3.1.5.tar.xz [root@jeames007 ~]# cd mpfr-3.1.5/ [root@jeames007 ~]#./configure --prefix=/usr/local/mpfr-3.1.5 --with-gmp=/usr/local/gmp-5.0.1 [root@jeames007 mpfr-3.1.5]# machen [root@jeames007 mpfr-3.1.5]# make install 5.MPC-Zusammenstellung[root@jeames007 ~]# tar -vxf mpc-1.0.1.tar.gz [root@jeames007 ~]# cd mpc-1.0.1 [root@jeames007 ~]# ./configure --prefix=/usr/local/mpc-1.0.1 --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.5 [root@jeames007 mpc-1.0.1]# machen [root@jeames007 mpc-1.0.1]# make install 6. GCC-Konfiguration[root@rhel76 ~]# cd gcc-10.1.0 [root@rhel76 gcc-10.1.0]# cd build/ ../Konfigurieren --prefix=/usr/local/gcc-10.1.0/ --enable-checking=release --enable-languages=c,c++ --disable-multilib --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.5 --with-mpc=/usr/local/mpc-1.0.1 Build-Systemtyp wird geprüft … x86_64-pc-linux-gnu Hostsystemtyp wird geprüft … x86_64-pc-linux-gnu Zielsystemtyp wird geprüft … x86_64-pc-linux-gnu Suche nach einer BSD-kompatiblen Installation … /usr/bin/install -c prüfe ob ln funktioniert... ja überprüfe, ob ln -s funktioniert... ja Suche nach einem Sed, der die Ausgabe nicht abschneidet … /usr/bin/sed Suche nach gawk... gawk Überprüfung auf Libatomic-Unterstützung ... ja Überprüfung auf Libitm-Unterstützung ... ja Überprüfung auf Libsanitizer-Unterstützung ... ja Suche nach Libvtv-Unterstützung … ja Suche nach libhsail-rt-Unterstützung … ja Suche nach Libphobos-Unterstützung … ja Suche nach gcc... gcc prüfen, ob der C-Compiler funktioniert... ja Suche nach dem Standardausgabedateinamen des C-Compilers: a.out Überprüfung des Suffixes ausführbarer Dateien … Überprüfen, ob wir Cross-Compiling durchführen ... nein Überprüfung des Suffixes von Objektdateien... o Überprüfen, ob wir den GNU C-Compiler verwenden ... ja Überprüfen, ob gcc -g akzeptiert... ja Suche nach GCC-Option zum Akzeptieren von ISO C89 … keine erforderlich Suche nach g++... g++ Überprüfen, ob wir den GNU C++-Compiler verwenden ... ja Überprüfen, ob g++ -g akzeptiert... ja Überprüfen, ob G++ -static-libstdc++ -static-libgcc akzeptiert... nein Suche nach Gnatbind ... nein Suche nach Gnatmake ... nein Überprüfen, ob der Compilertreiber Ada versteht ... nein Überprüfen, wie gebootet-basierte Objekte verglichen werden ... cmp --ignore-initial=16 $$f1 $$f2 Suche nach objdir...libs Überprüfung auf die richtige Version von gmp.h ... ja Überprüfung auf die richtige Version von mpfr.h ... fehlerhaft, aber akzeptabel Überprüfung auf die richtige Version von mpc.h ... ja Überprüfung auf die richtige Version der gmp/mpfr/mpc-Bibliotheken... ja Suche nach isl 0.15 oder höher... nein erforderliche isl-Version ist 0.15 oder höher *** Diese Konfiguration wird in den folgenden Unterverzeichnissen nicht unterstützt: gnattools gotools Ziel-Libada Ziel-Libhsail-rt Ziel-Libphobos Ziel-Zlib Ziel-Libbacktrace Ziel-Libgfortran Ziel-Libgo Ziel-Libffi Ziel-Libobjc Ziel-Liboffloadmic (Alle anderen Verzeichnisse sollten weiterhin problemlos funktionieren.) Suche nach Standard-BUILD_CONFIG... Bootstrap-Debug Überprüfung auf --enable-vtable-verify... nein Suche nach Bison ... Bison -y Suche nach Bisons ... Bisons Suche nach GM4 ... nein Suche nach gnum4... nein Suche nach m4...m4 Suche nach Flex... Flex Suche nach Flex... Flex Suche nach Makeinfo ... nein /root/gcc-10.1.0/missing: Zeile 81: makeinfo: Befehl nicht gefunden Suche nach expect... nein Suche nach Runtest ... nein Suche nach ar...ar Suche nach so... so Suche nach DLLTool... nein Suche nach ld...ld auf Lipo prüfen... nein Suche nach nm... nm Suche nach ranlib... ranlib Suche nach Streifen... Streifen Suche nach Windres... nein Suche nach Windmc ... nein Suche nach Objektkopie... Objektkopie Suche nach objdump... objdump Suche nach Otool ... nein Suche nach readelf... readelf Suche nach CC...CC Suche nach C++... C++ Suche nach gcc... gcc Suche nach gfortran... gfortran Suche nach gccgo... nein Suche nach GDC ... nein Suche nach ar... nein Suche nach ar...ar Suche nach as... nein Suche nach so... so Suche nach DLLTool... nein Suche nach DLLTool... nein Suche nach ld... nein Suche nach ld...ld auf Lipo prüfen... nein auf Lipo prüfen... nein Suche nach nm... nein Suche nach nm... nm Suche nach Objektkopie... nein Suche nach Objektkopie... Objektkopie Suche nach Objdump ... nein Suche nach objdump... objdump Suche nach Otool ... nein Suche nach Otool ... nein Suche nach Ranlib ... nein Suche nach ranlib... ranlib Überprüfung auf Readelf ... nein Suche nach readelf... readelf auf Streifen prüfen... nein Suche nach Streifen... Streifen Suche nach Windres... nein Suche nach Windres... nein Suche nach Windmc ... nein Suche nach Windmc ... nein Überprüfen, wo sich das Ziel befindet ... Host-Tool Überprüfen, wo sich das Ziel als Host-Tool befindet überprüfe, wo sich das Ziel-CC befindet... gerade kompiliert Überprüfe, wo das Ziel-C++ zu finden ist ... gerade kompiliert überprüfe, wo das Ziel-C++ für libstdc++ zu finden ist... gerade kompiliert Überprüfen, wo das Ziel-DLLtool zu finden ist ... Hosttool überprüfe, wo der Ziel-GCC zu finden ist ... gerade kompiliert Überprüfen, wo sich das Ziel-Gfortran befindet ... Host-Tool Überprüfen, wo sich das Ziel-GCCGO befindet ... Host-Tool Überprüfen, wo sich das Ziel-GDC befindet ... Host-Tool Überprüfen, wo sich das Ziel-LD befindet ... Host-Tool Überprüfen, wo sich das Ziel-Liposuktionstool befindet ... Überprüfen, wo sich das Ziel-NM befindet ... Host-Tool Überprüfen, wo sich das Ziel-Objcopy...-Host-Tool befindet Überprüfen, wo sich das Ziel-Objdump befindet ... Host-Tool Überprüfen, wo sich das Ziel-Otool befindet ... Host-Tool Überprüfen, wo sich das Ziel-Ranlib...-Hosttool befindet Überprüfen, wo sich das Ziel-Readself...-Host-Tool befindet Überprüfen, wo sich der Zielstreifen befindet ... Host-Tool Überprüfen, wo sich das Ziel-Windres...-Hosttool befindet Überprüfen, wo sich das Ziel-Windmc...-Hosttool befindet Überprüfen, ob betreuerspezifische Teile von Makefiles aktiviert werden sollen ... nein konfigurieren: ./config.status erstellen config.status: Makefile erstellen [root@jeames007 ~]# make -j4 Make dauert sehr lange. Bitte haben Sie Geduld. Ich habe 1 Stunde zum Kompilieren gebraucht. Wenn die Bedingungen es erlauben, können Sie beim Kompilieren make -j8 verwenden. [root@jeames007 build]# make install Zu diesem Zeitpunkt wurde die GCC-Version noch nicht aktualisiert, daher sind die folgenden Vorgänge erforderlich 7. GCC-Versionsaktualisierungmv /usr/bin/gcc /usr/bin/gcc485 mv /usr/bin/g++ /usr/bin/g++485 mv /usr/bin/c++ /usr/bin/c++485 mv /usr/bin/cc /usr/bin/cc485 ln -s /usr/local/gcc-10.1.0/bin/gcc /usr/bin/gcc ln -s /usr/local/gcc-10.1.0/bin/g++ /usr/bin/g++ ln -s /usr/local/gcc-10.1.0/bin/c++ /usr/bin/c++ ln -s /usr/local/gcc-10.1.0/bin/gcc /usr/bin/cc mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak ln -s /usr/local/gcc-10.1.0/lib64/libstdc++.so.6.0.28 /usr/lib64/libstdc++.so.6 Nachdem das Skript erfolgreich ausgeführt wurde, können Sie die aktuell verwendete GCC-Version anzeigen. Der anzuzeigende Befehl lautet: gcc -v [root@jeames007 ~]# gcc -v Integrierte Spezifikationen verwenden. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/local/gcc-10.1.0/libexec/gcc/x86_64-pc-linux-gnu/10.1.0/lto-wrapper Ziel: x86_64-pc-linux-gnu Konfiguriert mit: ../configure --prefix=/usr/local/gcc-10.1.0/ --enable-checking=release --enable-languages=c,c++ --disable-multilib --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.5 --with-mpc=/usr/local/mpc-1.0.1 Thread-Modell: POSIX Unterstützte LTO-Komprimierungsalgorithmen: zlib gcc Version 10.1.0 (GCC) Dies ist das Ende dieses Artikels über den äußerst detaillierten gcc-Upgradeprozess in Linux. Weitere relevante Inhalte zum Linux-gcc-Upgrade finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Zwei Möglichkeiten, damit IE6 Bilder im PNG-24-Format normal anzeigt
>>: Detaillierte Erklärung des Overflow-Scrollens zur Lösung des Scroll-Lag-Problems
Obwohl das W3C einige Standards für HTML festgeleg...
Inhaltsverzeichnis Vorwort Optimierung Variablen ...
Inhaltsverzeichnis 1. Nutzung 1. Grundlegende Ver...
Aus einer Laune heraus habe ich eine Fallstudie ü...
In diesem Artikelbeispiel wird der spezifische Co...
In Webprojekten nutzen wir häufig die Zeitleisten...
Hinweis: Das System ist Ubuntu 14.04LTS, ein 32-B...
--1. Erstellen Sie eine neue Gruppe und einen neu...
Inhaltsverzeichnis Relativer Pfadsprung im Vue-Ro...
1. Klicken Sie unten in IDEA auf Terminal und geb...
Docker-Installation Verwenden Sie das offizielle ...
Hier erfahren Sie, wie Sie nach der Verkleinerung...
Vorwort Benannte Slots werden mithilfe des Attrib...
Bereiten Sie eine CentOS6-Installationsdiskette (...
Vorwort Dieser Artikel beschreibt zwei Situatione...