在CentOS 5上编译NodeJS 4+

Compiling NodeJS 4+ On CentOS 5

本文关键字:NodeJS 编译 CentOS      更新时间:2023-10-16

我在编译NodeJS 4.2.3(任何需要c++4.8及以上版本的版本)时遇到问题,我已经完成了以下操作:

  • 编译的gcc4.8(因为在CentOS6上gcc默认为4.4
  • 将CXX选项设置为指向更新的编译器
  • 通过LD_LIBRARY_PATH添加MPC、GMP和MPFR库

但我仍然得到以下错误:

gt测试测试部件.cc:(.text.starter._GLOBAL__sub_I__ZN7testing14TestPartResult14ExtractSummaryEPKc+0xa):未定义对std::ios_base::Init::Init()' gtest-test-part.cc:(.text.startup._GLOBAL__sub_I__ZN7testing14TestPartResult14ExtractSummaryEPKc+0x1a): undefined reference to std::ios_base::Init::~Init()'collect2:错误的引用:ld返回1退出状态

因此,我看到以下gcc未定义的对`std::ios_base::Init::Init()';的引用;,但我不确定如何添加它,如果可能的话,或者我是否应该将库添加到LD_library_PATH?我也看到了这一点,但我没有root(遗留系统不是我们云的一部分),所以我不能应用所有给出的建议。

让nodejs使用通过源代码编译的gcc4.8进行编译的正确方法是什么?

唉,我把这件事做得比需要的复杂得多。

二进制文件可以免费下载,我想我本可以在另一台机器上编译,然后从那里下载,但我下意识地担心链接问题(甚至是引用内核的问题?),但它似乎运行得很好。我通常会想到从需要root的RPM中获取二进制文件。事实似乎并非如此。