背景前端
龙芯是国产的cpu,采用是mips架构,就相似你们熟知的x8六、arm。node
最近在一台龙芯电脑(系统是中兴新支点,Linux)上调试前端应用(electron),因而就须要安装NodeJS。npm
可是,NodeJS的官方资源就没有Linux mips 可直接使用的包,这就须要本身编译NodeJS。架构
插曲electron
网上有人提到使用 yum install -y nodejs 就能够安装,我试验过也确实能够,可是它安装的版本是 v0.12.4 ,这个版本过低,不符合个人应用要求。spa
安装步骤.net
下载源码:https://nodejs.org/download/release/v10.0.0/调试
一、配置code
./configure
二、编译xml
make
三、安装
make install
node-v10.0.0(失败)
最开始选择编译的是v10.0.0版本,但整个过程出现了两个问题。
问题一:unrecognized command line option ‘-m64’
在编译过程当中,当编译到openssl这个库时,就会报上面的错。
网上又有人说,能够经过排除编译这个库来解决,也便是在配置步骤加个 --without-ssl 参数。
./configure --without-ssl
结果确实能够编译经过,也能安装,node这命令也能用,但npm就不行!
问题二:Error [ERR_NO_CRYPTO]: Node.js is not compiled with OpenSSL crypto support
在使用npm命令就出了这问题。
这就存在一个矛盾:加上 openssl 没法编译经过,不加上 npm 就用不了。
node-v4.4.3(无用)
紧接着换了个较低的版本编译。
PS:有一些文件须要作微小的调整才能正确编译,详情查看 https://blog.csdn.net/weixin_40065369/article/details/85687482
这么安装后,node和npm都能正常使用了,可是在前端工程安装依赖时候,问题又来了:node版本过低了,不少依赖装不了(基本要求v6以上),只能宣告这node版本没用。
node-v8.16.1(勉强可用)
因而又换了个不高不低的版本,这个版本也须要像 node-v4.4.3 调整一些文件。
编译正常,安装正常,但是使用使用又出现一些问题。
问题:TypeError: log.gauge.isEnabled is not a function
因而我找到代码位置,修改其中代码来规避这些问题。修改时,修改一处,另外一处又报错,大概是改了5处才使得 npm 的命令不报错,才勉强可用。
总结
龙芯做为国产的cpu,绝大多数软件没有兼容版本,特别是国外的软件或开源项目。它过小众了,以现在的状态根本没有造成软件生态的可能,即使是想在上面开发软件,也是困难多多。