centos 6 install gcc-c++

前言

問題出現nodejs 環境,在初始安裝nodejs相關依賴時,出現gcc-c++ 版本錯誤

In file included from ../src/bcrypt_node.cc:1:
../../nan/nan.h:47:3: error: #error This version of node/NAN/v8 requires a C++11 compiler
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/memory

查閱資料得知
由於node4.0版本後升級了v8引擎,編譯時需要gcc4.8以上版本,Centos6自帶的gcc爲gcc-4.4.7, 不支持編譯所需的C++11標準,所以只好升級gcc

版本升級方案

centos6 最新的gcc版本仍停留在4.4.7,不符合要求,這時想到的就是編譯安裝gcc-c++ ,但在嘗試通過rpm升級gcc-c++的過程中發現其和系統基礎庫有和多依賴
這種對系統層面會產生嚴重未知影響的升級,能避免還是儘量便面的好
繼續參閱資料後發現,可使用devtoolset 工具在系統間使用多個版本gcc-c++

安裝devtoolset

  1. 首先安裝源
    yum install centos-release-scl-rh centos-release-scl
    yum check-update
  2. 安裝devtoolset
    這裏不必安裝全部的devtoolset ,只需要安裝devtoolset-gcc-c++即可
    要注意,安裝前要先確認devtoolset 完整包名
    yum search devtoolset 

    會得到類似如下結果:

    devtoolset-6.x86_64 : Package that installs devtoolset-6
    devtoolset-7.x86_64 : Package that installs devtoolset-7
    devtoolset-6-gcc.x86_64 : GCC version 6
    devtoolset-6-gcc-c++.x86_64 : C++ support for GCC version 6
    devtoolset-7-gcc.x86_64 : GCC version 7
    devtoolset-7-gcc-c++.x86_64 : C++ support for GCC version 7

這裏使用devtoolset-6-gcc-c++

yum install devtoolset-6-gcc-c++

當前shell啓用devtoolset-6-gcc-c++,如想默認啓用,將此行加入到/etc/profile內即可

source /opt/rh/devtoolset-6/enable

再次編譯nodejs依賴,問題順利解決

後話

當無法順利升級到高版本時,可以嘗試是否有多版本共存或替代的方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章