在CentOS 5上编译NodeJS 4+
Compiling NodeJS 4+ On CentOS 5
我在编译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中获取二进制文件。事实似乎并非如此。