मुझे प्रतिक्रिया /root/gcc-4.8.2/bin मिलती है: जब मैं bash.rc में पथ सेट करता हूं तो ऐसी कोई फ़ाइल या निर्देशिका नहीं होती है


0

मैं पहले से ही अपने सिस्टम में 4.4.7 gcc था। मेरा सिस्टम आरएचईएल 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.

मैं gcc-4.8.2 में अपग्रेड करना चाहता हूं और मैं इसे अपने सिस्टम पर इंस्टॉल करने के सभी चरणों से गुजरा।

टाइपिंग के बाद मुझे प्राप्त आउटपुट का अंतिम भाग make installनिम्नानुसार है:

 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'

हालाँकि, gcc -v टाइप करने के बाद मैंने पाया कि कंपाइलर को जगह नहीं मिली:

 [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) 

मैंने रूट को रूट के रूप में सेट करने की कोशिश की। मैंने टाइप किया vim .bashrcऔर मैं इस विंडो पर आया:

# .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

जैसा कि ऊपर देखा जा सकता है, मैंने इस स्क्रिप्ट में निम्नलिखित तरीके से रास्ता जोड़ा:

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

टाइप करने के बाद मुझे echo $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

Gcc-4.8.2 के लिए पथ का स्पष्ट रूप से पता नहीं चला है।

मैं PATH को कैसे सेट कर सकता हूं ताकि gcc-4.8.2डिफ़ॉल्ट कंपाइलर के रूप में पहचाना जाए और नहीं gcc-4.4.7?

संपादित करें:

मैंने बॉक्समा की सलाह का पालन किया और मेरा मार्ग अद्यतन हो गया:

/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

टाइप करने के बाद अब मुझे निम्न आउटपुट मिले 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) 

1
अपना .bashrcवहाँ पेस्ट करें : shellcheck.net
साइरस

जवाबों:


1

आपके पास बाद में स्थान नहीं होना चाहिए PATH=, और मान को "चिह्नों के साथ घेरना चाहिए ताकि $PATHठीक से प्रतिस्थापित किया जा सके:

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

इसके अलावा, अपने .bashrc को पुनः लोड करना सुनिश्चित करें ताकि आपके परिवर्तन वास्तव में लागू हों:

# source /root/.bashrc

Usr / bin से पहले नए gcc के लिए रास्ता तैयार करने से यह पुराने इंस्टॉलेशन पर पूर्वता लेने की अनुमति देगा।

ध्यान दें कि चूंकि gcc / रूट में स्थापित किया गया है इसलिए कोई अन्य उपयोगकर्ता इसे एक्सेस / रन नहीं कर पाएगा।


मैंने आपके उत्तर का पालन किया और अब मेरा मार्ग अद्यतन कर दिया गया है। जब मैं टाइप करता हूँ तो मुझे gcc-4.8.2 दिखाई देता है gcc -v
a_sid

0

gcc-4.9.2 रेपो से उपलब्ध है: # yum install centos-release-scl-rh

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

Gcc / g ++ संस्करण 4.9.2 को सक्षम करना: $ scl enable devtoolset-3 bash


0

gcc-4.9.2 रेपो से उपलब्ध है: # yum install centos-release-scl-rh

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

Gcc / g ++ संस्करण 4.9.2 को सक्षम करना: $ scl enable devtoolset-3 bash


Http://people.centos.org/tru/devtools-2 से उपलब्ध है gcc-4.8.2 → → → https://people.centos.org/tru/devtools-2/devtools-2.repo

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

4.8.2 सक्षम करना: $ scl enable devtoolset-2 bash


4.9.2 स्थापित करने के बाद मुझे और क्या लाभ होंगे?
a_sid
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.