星空网 > 软件开发 > 操作系统

nodejs的交叉(跨平台)编译(to android)

nodejs的二进制包有两种安装方式node-gyp以及node-pre-gyp

这两条命令会写入该包的安装脚本。

node-gyp是使用gyp工具编译源码,因此必须指定交叉编译器(参见http://n8.io/cross-compiling-nodejs-v0.8/)

node-pre-gyp首先考虑从package.json定义的远程地址下载二进制包,若无,则依然交给node-gyp编译

node-pre-gyp指定平台和架构的参数为 --target_platform="" --target_arch=""(参见https://www.npmjs.com/package/node-pre-gyp)

以上已知后写入脚本。

例子:

#设置交叉编译器export AR=~/node-v0.12.4/android-toolchain/arm-linux-androideabi/bin/arexport CC=~/node-v0.12.4/android-toolchain/arm-linux-androideabi/bin/gcc 
export CXX=~/node-v0.12.4/android-toolchain/arm-linux-androideabi/bin/g++
export LINK=~/node-v0.12.4/android-toolchain/arm-linux-androideabi/bin/g++
#定义需要编译的库列表
m=(hiredis iconv sqlite3)
for i in ${m[*]};
do
cd node_modules/$i
cnpm run-script install --target_platform="android" --target_arch="arm"
cd ../../
done

注意nodejs的版本是否一致,如果因为node版本不一致导致运行时找不到文件请手工修改路径。工具链的生成看最后一段。

最后是node的编译

wget http://nodejs.org/dist/v0.12.4/node-v0.12.4.tar.gztar xvf node-v0.12.4.tar.gzcd node-v0.12.4sed -i "s/arm-linux-androideabi-4.7/arm-linux-androideabi-4.8/g" android-configuresource ./android-configure ~/android-ndk-r9dcd android-toolchain/binmv python2.7 oldpython2.7 && ln -s /usr/bin/python2.7 python2.7cd ../../make

~/android-ndk-r9d是ndk的路径
可执行文件为node-v0.12.4/out/Release/node 使用adb push node /data/local/tmp/node 就可以在手机执行



原标题:nodejs的交叉(跨平台)编译(to android)

关键词:JS

JS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

梅州综试区:https://www.ikjzd.com/w/1573202616016871426
会员:https://www.ikjzd.com/w/1573202619867586562
美国阵亡将士纪念日:https://www.ikjzd.com/w/1573202623218835458
男装:https://www.ikjzd.com/w/1573202624305160193
盟邦进出口供应链:https://www.ikjzd.com/w/1573202624829104129
MensUnderwearStore:https://www.ikjzd.com/w/1573202636749660162
去日本入住酒店,东西随意用却有一个特殊“要:https://www.vstour.cn/a/411241.html
中国有哪些著名的酒店品牌。:https://www.vstour.cn/a/411242.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流