zoukankan      html  css  js  c++  java
  • Centos6_64下 GCC-C++平台搭建

    安装方法

    自动安装

        yum install gcc     (这是)
        yum install gcc-c++ (这是C++编译器)
        yum install cmake
    

    但是这样并不能安装指定版本 仅能安装系统盘中的版本,下面以centos 6X64 安装gcc 4.8.4为例

    自定义安装

    1. 安装gcc4.8.4

    for 小白(其实我就是一枚)

    下面的cd XX 表示进入某个目录 默认情况下在root目录下
    cd .. or ’‘ 表示回到根目录
    wget 表示从网络位置获取一个下载

    1) 下载源码

    wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.4/gcc-4.8.4.tar.bz2 (可以根据不同的需要更改此处的版本号)
    

    2) 解压并下载编译所需的项目

    tar -jxvf  gcc-4.8.4.tar.bz2
    cd gcc-4.8.4 
    ./contrib/download_prerequisites 
    cd .. (回到根目录 此处的.可以用空格代替)
    

    3) 生成目录和makefile 并编译

    mkdir gcc-build-4.8.4(在root下建立一个目录用来存放)
    cd  gcc-build-4.8.4 
    ../gcc-4.8.4/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
    make -j4 (*这一步之后是漫长的等待~ 不要以为是死机了.....*)
    

    4) 安装

    sudo make install
    

    5) 检查版本号

    gcc --version or -v
    
    Using built-in specs.
    COLLECT_GCC=gcc
    COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.8.4/lto-wrapper
    Target: x86_64-unknown-linux-gnu
    Configured with: ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
    Thread model: posix
    gcc version 4.8.4 (GCC)

    2. 安装Cmake

    1) 获取源 同上

    wget http://www.cmake.org/files/v3.4.2/cmake-3.4.2.tar.gz(现已更新到3.5根据个人需要选择,此版本相对比较稳定)
    

    2) 解压并进入目录

    tar -zxvf cmake-3.4.2.tar.gz
    cd cmake-3.4.2
    

    3) 十分重要也容易报错的部分

    ./bootstrap
    
    错误1
    gmake: “cmake”是最新的。
    /home/src/cmake-2.8.12.2/Bootstrap.cmk/cmake: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /home/src/cmake-2.8.12.2/Bootstrap.cmk/cmake)             
    尝试运行       
    strings /usr/lib/libstdc++.so.6 | grep GLIBCXX  
    GLIBCXX_3.4  
    GLIBCXX_3.4.1  
    GLIBCXX_3.4.2  
    GLIBCXX_3.4.3  
    GLIBCXX_3.4.4  
    GLIBCXX_3.4.5  
    GLIBCXX_3.4.6  
    GLIBCXX_3.4.7  
    GLIBCXX_3.4.8  
    GLIBCXX_3.4.9  
    GLIBCXX_3.4.10  
    GLIBCXX_3.4.11  
    GLIBCXX_3.4.12  
    GLIBCXX_3.4.13  
    GLIBCXX_FORCE_NEW  
    GLIBCXX_DEBUG_MESSAGE_LENGTH  
    此为libstdc++.so.6版本较低造成 
    
    从网络上获取
    wget http://ftp.de.debian.org/debian/pool/main/g/gcc-4.7/libstdc++6_4.7.2-5_i386.deb (根据需求获取)
    tar -x libstdc++6_4.7.2-5_i386.deb && tar xvf data.tar.gz  
    
    从刚刚安装的gcc入手
    顺着gcc安装路径,找到了新的libstdc++:
    strings /usr/local/lib64/libstdc++.so.6.0.20|grep GLIBCXX(此处6.后面的视版本而定)
    GLIBCXX_3.4
    GLIBCXX_3.4.1
    GLIBCXX_3.4.2
    GLIBCXX_3.4.3
    GLIBCXX_3.4.4
    GLIBCXX_3.4.5
    GLIBCXX_3.4.6
    GLIBCXX_3.4.7
    GLIBCXX_3.4.8
    GLIBCXX_3.4.9
    GLIBCXX_3.4.10
    GLIBCXX_3.4.11
    GLIBCXX_3.4.12
    GLIBCXX_3.4.13
    GLIBCXX_3.4.14
    GLIBCXX_3.4.15
    GLIBCXX_3.4.16
    GLIBCXX_3.4.17
    GLIBCXX_3.4.18
    GLIBCXX_3.4.19
    GLIBCXX_3.4.20
    GLIBCXX_FORCE_NEW
    GLIBCXX_DEBUG_MESSAGE_LENGTH
    

    不错这里就有合乎要求的

    结合前两种 继续
    cp /usr/local/lib/libstdc++.so.6.0.20  /usr/lib/ (复制到usr目录下)
    cd /usr/lib/ (到该目录)
    rm -f libstdc++.so.6  (删除老的lib)
    ln -s libstdc++.so.6.0.20 libstdc++.so.6 (重新建立链接)
    strings /usr/lib/libstdc++.so.6 | grep GLIBCXX (再次查看)
    

    注意lib64下的目录也要更新! 这里不再赘述 改改后缀即可

    错误2
    Error when bootstrapping CMake:  
    Cannot find appropriate C(或者是C++) compiler on this system.  
    Please specify one using environment variable CC.  
    See cmake_bootstrap.log for compilers attempted.  

    缺少合适的C/C++编译器, 此时应关注gcc的版本是否匹配,本例中应该是匹配的!~

    4) 后续安装

    gmake
    gmake install
    cmake --version
    

    3. 验证

      //fir.cc
    #include <iostream>
    using namespace std;
    
    int main()
    {    
        cout <<"Hello world!" <<endl;
        return 0;
    }
    cmd中输入
    g++ -std=c++11 -o fir fir.cc
    ./fir.cc(如果不能运行 说明未提供权限 加上权限 chmod +x fir.cc)
  • 相关阅读:
    HTTP请求下载文件格式
    MT7621 加 openWRT 用HTTP和远程服务器通信
    MT7621加 OPENWRT 移植MQTT(paho.mqtt.c) 进行数据的收发
    MT7621安装的openwrt出现无法删除文件的问题
    GAI_LIB = -lanl
    error: expected declaration specifiers or '...' before numeric constant void free(void *);
    environment variable 'STAGING_DIR' not defined
    ubuntu安装 make4.2
    gcc在root权限下查不到版本
    【原创】大叔经验分享(113)markdown语法
  • 原文地址:https://www.cnblogs.com/hkevin/p/5510059.html
Copyright © 2011-2022 走看看