Ich erhalte die Antwort /root/gcc-4.8.2/bin: Keine solche Datei oder Verzeichnis, wenn ich den Pfad in der bash.rc setze

627
a_sid

Ich hatte bereits gcc 4.4.7 in meinem System. Mein System ist RHEL 6.6.

[root@gksrv Desktop]# gcc --version gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18) Copyright (C) 2010 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 

Ich möchte auf gcc-4.8.2 aktualisieren und habe alle Schritte zur Installation auf meinem System durchlaufen.

Der letzte Teil der Ausgabe, den ich nach dem Tippen erhielt, make installlautet wie folgt:

 Libraries have been installed in: /root/gcc-4.8.2/lib/../lib64  If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf'  See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- test -z "/root/gcc-4.8.2/share/info" || /bin/mkdir -p "/root/gcc-4.8.2/share/info" /usr/bin/install -c -m 644 /root/Downloads/objdir/../gcc-4.8.2/libgomp/libgomp.info '/root/gcc-4.8.2/share/info' install-info --info-dir='/root/gcc-4.8.2/share/info' '/root/gcc-4.8.2/share/info/libgomp.info' test -z "/root/gcc-4.8.2/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/finclude" || /bin/mkdir -p "/root/gcc-4.8.2/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/finclude" /usr/bin/install -c -m 644 omp_lib.h omp_lib.f90 omp_lib.mod omp_lib_kinds.mod '/root/gcc-4.8.2/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/finclude' test -z "/root/gcc-4.8.2/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/include" || /bin/mkdir -p "/root/gcc-4.8.2/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/include" /usr/bin/install -c -m 644 omp.h '/root/gcc-4.8.2/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/include' make[4]: Leaving directory `/root/Downloads/objdir/x86_64-unknown-linux-gnu/libgomp' make[3]: Leaving directory `/root/Downloads/objdir/x86_64-unknown-linux-gnu/libgomp' make[2]: Leaving directory `/root/Downloads/objdir/x86_64-unknown-linux-gnu/libgomp' make[2]: Entering directory `/root/Downloads/objdir/x86_64-unknown-linux-gnu/libitm' Making install in testsuite make[3]: Entering directory `/root/Downloads/objdir/x86_64-unknown-linux-gnu/libitm/testsuite' make[4]: Entering directory `/root/Downloads/objdir/x86_64-unknown-linux-gnu/libitm/testsuite' make[4]: Nothing to be done for `install-exec-am'. make[4]: Nothing to be done for `install-data-am'. make[4]: Leaving directory `/root/Downloads/objdir/x86_64-unknown-linux-gnu/libitm/testsuite' make[3]: Leaving directory `/root/Downloads/objdir/x86_64-unknown-linux-gnu/libitm/testsuite' make[3]: Entering directory `/root/Downloads/objdir/x86_64-unknown-linux-gnu/libitm' true DO=all multi-do # make make[4]: Entering directory `/root/Downloads/objdir/x86_64-unknown-linux-gnu/libitm' true DO=install multi-do # make test -z "/root/gcc-4.8.2/lib/../lib64" || /bin/mkdir -p "/root/gcc-4.8.2/lib/../lib64" /usr/bin/install -c -m 644 libitm.spec '/root/gcc-4.8.2/lib/../lib64' test -z "/root/gcc-4.8.2/lib/../lib64" || /bin/mkdir -p "/root/gcc-4.8.2/lib/../lib64" /bin/sh ./libtool --mode=install /usr/bin/install -c libitm.la '/root/gcc-4.8.2/lib/../lib64' libtool: install: /usr/bin/install -c .libs/libitm.so.1.0.0 /root/gcc-4.8.2/lib/../lib64/libitm.so.1.0.0 libtool: install: (cd /root/gcc-4.8.2/lib/../lib64 && { ln -s -f libitm.so.1.0.0 libitm.so.1 || { rm -f libitm.so.1 && ln -s libitm.so.1.0.0 libitm.so.1; }; }) libtool: install: (cd /root/gcc-4.8.2/lib/../lib64 && { ln -s -f libitm.so.1.0.0 libitm.so || { rm -f libitm.so && ln -s libitm.so.1.0.0 libitm.so; }; }) libtool: install: /usr/bin/install -c .libs/libitm.lai /root/gcc-4.8.2/lib/../lib64/libitm.la libtool: install: /usr/bin/install -c .libs/libitm.a /root/gcc-4.8.2/lib/../lib64/libitm.a libtool: install: chmod 644 /root/gcc-4.8.2/lib/../lib64/libitm.a libtool: install: ranlib /root/gcc-4.8.2/lib/../lib64/libitm.a libtool: finish: PATH="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-1.b13.el6.x86_64/bin:/usr/lib64/qt-3.3/bin:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-1.b13.el6.x86_64/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/apache/apache-ant-1.9.9/bin:/root/bin:/usr/apache/apache-ant-1.9.9/bin:/sbin" ldconfig -n /root/gcc-4.8.2/lib/../lib64 ldconfig: /root/gcc-4.8.2/lib/../lib64/libstdc++.so.6.0.18-gdb.py is not an ELF file - it has the wrong magic bytes at the start.  ---------------------------------------------------------------------- Libraries have been installed in: /root/gcc-4.8.2/lib/../lib64  If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf'  See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- test -z "/root/gcc-4.8.2/share/info" || /bin/mkdir -p "/root/gcc-4.8.2/share/info" /usr/bin/install -c -m 644 /root/Downloads/objdir/../gcc-4.8.2/libitm/libitm.info '/root/gcc-4.8.2/share/info' install-info --info-dir='/root/gcc-4.8.2/share/info' '/root/gcc-4.8.2/share/info/libitm.info' make[4]: Leaving directory `/root/Downloads/objdir/x86_64-unknown-linux-gnu/libitm' make[3]: Leaving directory `/root/Downloads/objdir/x86_64-unknown-linux-gnu/libitm' make[2]: Leaving directory `/root/Downloads/objdir/x86_64-unknown-linux-gnu/libitm' make[1]: Leaving directory `/root/Downloads/objdir' 

Nach der Eingabe von gcc -v stellte ich jedoch fest, dass der Compiler nicht ersetzt wurde:

 [root@gksrv objdir]# gcc -v Using built-in specs. Target: 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-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux Thread model: posix gcc version 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)  

Ich habe versucht, den Pfad als root festzulegen. Ich habe getippt vim .bashrcund bin in diesem Fenster angekommen:

# .bashrc  # User specific aliases and functions  alias rm='rm -i' alias cp='cp -i' alias mv='mv -i'  # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi  if [ -d "/opt/intel/Compiler/11.0/083/bin" ] ; then PATH="/opt/intel/Compiler/11.0/083/bin:$PATH" fi  export ALTERAOCLSDKROOT="/home/altera/15.0/hld"  export QSYS_ROOTDIR="/home/altera/15.0/quartus/sopc_builder/bin"  PATH= /root/gcc-4.8.2/bin:$PATH export PATH 

Wie man oben sehen kann, habe ich den Pfad auf folgende Weise zu diesem Skript hinzugefügt:

PATH= /root/gcc-4.8.2/bin:$PATH export PATH 

Nach der Eingabe echo $PATHerhalte ich folgende Antwort:

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-1.b13.el6.x86_64/bin:/usr/lib64/qt-3.3/bin:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-1.b13.el6.x86_64/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/apache/apache-ant-1.9.9/bin:/root/bin:/usr/apache/apache-ant-1.9.9/bin 

Der Pfad für gcc-4.8.2 wurde eindeutig nicht erkannt.

Wie kann ich den PATH so einstellen, dass er gcc-4.8.2als Standard-Compiler erkannt wird und nicht gcc-4.4.7?

BEARBEITEN:

Ich folgte dem Rat der Boxama und mein Weg wurde aktualisiert:

/root/gcc-4.8.2/bin:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-1.b13.el6.x86_64/bin:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-1.b13.el6.x86_64/bin:/usr/lib64/qt-3.3/bin:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-1.b13.el6.x86_64/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/apache/apache-ant-1.9.9/bin:/root/bin:/usr/apache/apache-ant-1.9.9/bin:/usr/apache/apache-ant-1.9.9/bin 

Nach der Eingabe bekomme ich jetzt folgende Ausgabe gcc -v:

Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/root/gcc-4.8.2/libexec/gcc/x86_64-unknown-linux-gnu/4.8.2/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: /root/Downloads/objdir/../gcc-4.8.2/configure --prefix=/root/gcc-4.8.2 --enable-languages=c,c++,fortran,go --disable-multilib Thread model: posix gcc version 4.8.2 (GCC)  
0
Fügen Sie dort Ihren `.bashrc` ein: http://www.shellcheck.net/ Cyrus vor 7 Jahren 1

3 Antworten auf die Frage

1
boxama

Sie sollten danach kein Leerzeichen PATH=haben und den Wert mit "Markierungen umgeben, damit er $PATHordnungsgemäß ersetzt werden kann:

export PATH="/root/gcc-4.8.2/bin:$PATH" 

Stellen Sie außerdem sicher, dass Sie Ihre .bashrc neu laden, damit Ihre Änderungen tatsächlich übernommen werden:

# source /root/.bashrc 

Wenn Sie den Pfad vor / usr / bin dem neueren gcc voranstellen, hat er Vorrang vor der älteren Installation.

Beachten Sie, dass seit gcc in / root installiert ist, dass keine anderen Benutzer darauf zugreifen können.

Ich habe Ihre Antwort verfolgt und nun wurde mein Weg aktualisiert. Ich sehe gcc-4.8.2, wenn ich `gcc -v` eingebe. a_sid vor 7 Jahren 0
0
Knud Larsen

gcc-4.9.2 ist in den Repos erhältlich: # yum install centos-release-scl-rh

# yum install devtoolset-3-gcc-c++ 

Gcc / g ++ Version 4.9.2 aktivieren: $ scl enable devtoolset-3 bash

0
Knud Larsen

gcc-4.9.2 ist in den Repos erhältlich: # yum install centos-release-scl-rh

# yum install devtoolset-3-gcc-c++ 

Gcc / g ++ Version 4.9.2 aktivieren: $ scl enable devtoolset-3 bash


Unter http://people.centos.org/tru/devtools-2 steht gcc-4.8.2 zur Verfügung → → → https://people.centos.org/tru/devtools-2/devtools-2.repo

# yum install devtoolset-2-gcc-c++ 

Aktivieren von 4.8.2: $ scl enable devtoolset-2 bash

Welche weiteren Vorteile hätte ich nach der Installation von 4.9.2? a_sid vor 7 Jahren 0