如何为CentOS 6.10编译node.js(库问题)

时间:2019-04-30 23:47:20

标签: c++ node.js linux centos

我正在尝试获取在CentOS 6.10机器上运行的最新版本的节点(当前为12.1.0)。这是一个问题,因为标准的CentOS二进制文件已过期。例如:

./node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by ./node)
(a number of other references like this also appear)

当我尝试安装和运行二进制文件时,而g ++ / c ++工具已过时。但是,如果可以正确对齐工具,我决定尝试从源代码进行编译。

我从CERN devtools(http://linux.web.cern.ch/linux/devtoolset)获得了编译器工具的更新版本,并且似乎已正确安装了它们。我从网络上的各个地方得到的是,在进行配置之前,我需要将指向这些新库的指针导出,例如:

export CC=/opt/rh/devtoolset-2/root/usr/bin/gcc  
export CPP=/opt/rh/devtoolset-2/root/usr/bin/cpp
export CXX=/opt/rh/devtoolset-2/root/usr/bin/c++

这些确实具有更新的版本和足够现代的版本,例如

/opt/rh/devtoolset-2/root/usr/bin/c++ --version
c++ (GCC) 4.8.2 20140120 (Red Hat 4.8.2-15)

但是它们似乎并没有进入配置过程:

[root@linux2 node-v12.1.0]# ./configure --prefix=/opt/node-12.1.0
WARNING: C++ compiler too old, need g++ 6.3.0 or clang++ 8.0.0 (CXX=/opt/rh/devtoolset-2/root/usr/bin/c++)
INFO: Using floating patch "tools/icu/patches/64/source/common/putil.cpp" from "tools/icu"
INFO: Using floating patch "tools/icu/patches/64/source/i18n/dtptngen.cpp" from "tools/icu"
WARNING: warnings were emitted in the configure phase
INFO: configure completed successfully

当我用手指交叉尝试尝试make时,我会得到一堆编译结果,然后是一堆错误,为简洁起见,这里(暂时)将其省略。

无论如何:这只是不起作用。谁能看到这里发生的事情以及如何正确处理事情?谢谢!

1 个答案:

答案 0 :(得分:1)

您需要一个更新的devtoolset,而不是2或6或7。This link应该会有所帮助。并按照建议使用scl,而不要自己设置env vars。