• ubuntu 里切换 gcc,g++ 的版本


    https://askubuntu.com/questions/26498/choose-gcc-and-g-version

    https://stackoverflow.com/questions/7832892/how-to-change-the-default-gcc-compiler-in-ubuntu

    https://codeyarns.com/2015/02/26/how-to-switch-gcc-version-using-update-alternatives/

    关于 update-alternatives 命令的帮助:         http://www.cnblogs.com/welhzh/p/7339632.html

    First erased the current update-alternatives setup for gcc and g++:

    sudo update-alternatives --remove-all gcc 
    sudo update-alternatives --remove-all g++
    

    Install Packages

    It seems that both gcc-4.3 and gcc-4.4 are installed after install build-essential. However, we can explicitly install the following packages:

    sudo apt-get install gcc-4.3 gcc-4.4 g++-4.3 g++-4.4
    

    Install Alternatives

    Symbolic links cc and c++ are installed by default. We will install symbol links for gcc and g++, then link cc and c++ to gcc and g++ respectively.

    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.3 10
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 20
    
    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.3 10
    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.4 20
    
    sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
    sudo update-alternatives --set cc /usr/bin/gcc
    
    sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
    sudo update-alternatives --set c++ /usr/bin/g++
    

    Configure Alternatives

    The last step is configuring the default commands for gcc, g++. It's easy to switch between 4.3 and 4.4 interactively:

    sudo update-alternatives --config gcc
    sudo update-alternatives --config g++
    

    Or switch using script:

    #!/bin/sh
    
    if [ -z "$1" ]; then
        echo "usage: $0 version" 1>&2
        exit 1
    fi
    
    if [ ! -f "/usr/bin/gcc-$1" ] || [ ! -f "/usr/bin/g++-$1" ]; then
        echo "no such version gcc/g++ installed" 1>&2
        exit 1
    fi
    
    update-alternatives --set gcc "/usr/bin/gcc-$1"
    update-alternatives --set g++ "/usr/bin/g++-$1"






    Here's a complete example of jHackTheRipper's answer for the TL;DR crowd. :-) In this case, I wanted to run g++-4.5 on an Ubuntu system that defaults to 4.6. As root:

    apt-get install g++-4.5
    update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.6 100
    update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.5 50
    update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 100
    update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.5 50
    update-alternatives --install /usr/bin/cpp cpp-bin /usr/bin/cpp-4.6 100
    update-alternatives --install /usr/bin/cpp cpp-bin /usr/bin/cpp-4.5 50
    update-alternatives --set g++ /usr/bin/g++-4.5
    update-alternatives --set gcc /usr/bin/gcc-4.5
    update-alternatives --set cpp-bin /usr/bin/cpp-4.5

    Here, 4.6 is still the default (aka "auto mode"), but I explicitly switch to 4.5 temporarily (manual mode). To go back to 4.6:

    update-alternatives --auto g++
    update-alternatives --auto gcc
    update-alternatives --auto cpp-bin

    (Note the use of cpp-bin instead of just cpp. Ubuntu already has a cpp alternative with a master link of /lib/cpp. Renaming that link would remove the /lib/cpp link, which could break scripts.)

  • 相关阅读:
    [数据结构]图的DFS和BFS的两种实现方式
    [算法]两个栈实现一个队列
    [数据结构]手动实现队列
    [数据结构]手动实现栈
    [数据结构]手动实现单链表
    Hive分组取Top K数据
    HBase解决海量图片存储方案
    非结构化数据存储方案
    头条面试题之实现两个线程轮流打印字符串
    [算法]最大连续子数组和,最长重复子串,最长无重复字符子串
  • 原文地址:https://www.cnblogs.com/welhzh/p/7339656.html
Copyright © 2020-2023  润新知