測試須要使用DOClever,下載了最新的node8.11,運行node 時候報錯html
[root@app_test bin]# node www module.js:681 return process.dlopen(module, path._makeLong(filename)); ^ Error: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/jinkai/DOClever/Server/node_modules/fibers/bin/linux-x64-57/fibers.node) at Object.Module._extensions..node (module.js:681:18) at Module.load (module.js:565:32) at tryModuleLoad (module.js:505:12) at Function.Module._load (module.js:497:3) at Module.require (module.js:596:17) at require (internal/module.js:11:18) at Object.<anonymous> (/home/jinkai/DOClever/Server/node_modules/fibers/fibers.js:24:37) at Module._compile (module.js:652:30) at Object.Module._extensions..js (module.js:663:10) at Module.load (module.js:565:32)
參考1.CentOS6.5升級手動安裝GCC4.8.2
參考2.CentOS 6.6 升級GCC G++ (當前最新版本爲v6.1.0)java
[root@app_test bin]# cat /etc/redhat-release CentOS release 6.10 (Final) [root@app_test bin]# uname -a Linux app_test 2.6.32-696.28.1.el6.x86_64 #1 SMP Wed May 9 23:09:02 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.bz2 tar -jxvf gcc-4.8.2.tar.bz2
參考文獻[1]中說:這個神奇的腳本文件會幫咱們下載、配置、安裝依賴庫,能夠節約咱們大量的時間和精力。 cd gcc-4.8.0 ./contrib/download_prerequisites yum -y install glibc-devel.i686 glibc-devel #不安裝make時會有[all-stage1-target-libgcc]和[stage1-bubble]報錯
mkdir gcc-build-4.8.2 cd gcc-build-4.8.2
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
因爲我本地系統過久,系統提示node
Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+
因而,手動編譯安裝gmp,mpfr和mpc; 參考3.GCC源碼安裝出錯error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0linux
首先下載GMP、MPC、MPFR源碼庫: 一、下載GMP 直接 wget ftp://ftp.gnu.org/gnu/gmp/gmp-5.0.1.tar.bz2;便可下載到本。 二、下載MPC 打開http://www.multiprecision.org/mpc,下載mpc-1.0.tar.gz,x數字未定,隨便下一個穩定版本便可; 三、下載MPFR http://ftp.gnu.org/gnu/mpfr/; 下載mpfr-3.1.4.tar.xz 安裝各個庫,注意安裝順序,由於依賴問題,因此首先安裝GMP,而後是MPFR,而後是MPC 一、安裝GMP 1)、建立安裝目錄: mkdir /opt/gmp-5.0.1 2)、解壓縮源碼包 tar -jxvf gmp-5.0.1.tar.bz2 3)、進入源碼文件夾,執行配置 cd gmp-5.0.1 ./configure --prefix=/opt/gmp-5.0.1 make && make install 二、安裝MPFR mkdir /opt/mpfr-3.1.4 tar -zxvf mpfr-3.1.4.tar.xz cd mpfr-3.1.4 ./configure --prefix=/opt/mpfr-3.1.4 --with-gmp=/opt/gmp-5.0.1 make && make install 三、安裝MPC mkdir /opt/mpc-1.0 tar -zxvf mpc-1.0.tar.gz cd mpc-1.0 ./configure --prefix=/opt/mpc-1.0 --with-gmp=/opt/gmp-5.0.1 -with-gmp=/opt/gmp-5.0.1 make && make install
make -j4 -j4選項是make對多核處理器的優化,若是不成功請使用 make,相關優化選項能夠移步至參考文獻[2]。 我在安裝此步驟時候出錯,錯誤描述: compilation terminated. make[5]: *** [_gcov_merge_add.o] 錯誤 1 make[5]: Leaving directory `/home/imdb/gcc-4.8.2/gcc-build-4.8.2/x86_64-unknown-linux-gnu/32/libgcc' make[4]: *** [multi-do] 錯誤 1 make[4]: Leaving directory `/home/imdb/gcc-4.8.2/gcc-build-4.8.2/x86_64-unknown-linux-gnu/libgcc' make[3]: *** [all-multi] 錯誤 2 make[3]: *** 正在等待未完成的任務.... make[3]: Leaving directory `/home/imdb/gcc-4.8.2/gcc-build-4.8.2/x86_64-unknown-linux-gnu/libgcc' make[2]: *** [all-stage1-target-libgcc] 錯誤 2 make[2]: Leaving directory `/home/imdb/gcc-4.8.2/gcc-build-4.8.2' make[1]: *** [stage1-bubble] 錯誤 2 make[1]: Leaving directory `/home/imdb/gcc-4.8.2/gcc-build-4.8.2' make: *** [all] 錯誤 2
大概看看,錯誤集中在 x86_64unknown-linux-gnu/32/libgcc 和 x86_64-unknown-linux-gnu/libgcc;根據參考文獻[3],安裝以下兩個軟件包(僅用於CentOS6.X): yum -y install glibc-devel.i686 glibc-devel
make install
[root@app_test ~]# cd /mnt/sdb/gcc#進入編譯安裝的位置--prefix位置 [root@app_test gcc]# ll lib64/libstdc++.so* lrwxrwxrwx 1 root root 19 8月 1 20:52 lib64/libstdc++.so -> libstdc++.so.6.0.22 lrwxrwxrwx 1 root root 19 8月 1 20:52 lib64/libstdc++.so.6 -> libstdc++.so.6.0.22 -rwxr-xr-x 1 root root 11502684 8月 1 20:52 lib64/libstdc++.so.6.0.22 -rw-r--r-- 1 root root 2401 8月 1 20:52 lib64/libstdc++.so.6.0.22-gdb.py [root@app_test bin]# cd /usr/lib64/ [root@app_test lib64]# ln -sf /mnt/sdb/gcc/lib64/libstdc++.so.6.0.22 /usr/lib64/libstdc++.so.6 [root@app_test lib64]# strings /usr/lib64/libstdc++.so.6 | grep GLIBC 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_3.4.21 GLIBCXX_3.4.22 GLIBC_2.3 GLIBC_2.2.5 GLIBC_2.14 GLIBC_2.3.2 GLIBCXX_FORCE_NEW GLIBCXX_DEBUG_MESSAGE_LENGTH [root@app_test lib64]# gcc -v 使用內建 specs。 目標:x86_64-redhat-linux 配置爲:../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 線程模型:posix gcc 版本 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC)