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/ar
export 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.gz
tar xvf node-v0.12.4.tar.gz
cd node-v0.12.4
sed -i "s/arm-linux-androideabi-4.7/arm-linux-androideabi-4.8/g" android-configure
source ./android-configure ~/android-ndk-r9d
cd android-toolchain/bin
mv python2. oldpython2. && ln -s /usr/bin/python2. python2.
cd ../../
make
~/android-ndk-r9d是ndk的路径
可执行文件为node-v0.12.4/out/Release/node 使用adb push node /data/local/tmp/node 就可以在手机执行

nodejs的交叉(跨平台)编译(to android)的更多相关文章

  1. [转]Windows中使用命令行方式编译打包Android项目

    http://my.oschina.net/liux/blog/37875 网上很多用Ant来编译打包Android应用的文章,毕竟Ant是纯Java语言编写的,具有很好的跨平台性.今天想写个纯win ...

  2. Ubuntu16.04下搭建开发环境及编译tiny4412 Android系统【转】

    本文转载自:http://blog.csdn.net/songze_lee/article/details/72808631 版权声明:本文为博主原创文章,未经博主允许不得转载. 1.安装ssh服务器 ...

  3. C++字符串常量跨平台编译问题

    C++字符串常量跨平台编译问题(与字符串编码相关),有需要的朋友可以参考下. 1. 问题 在C++代码中,给一个string类型的变量赋值一个中文字符串常量,例如: string s = " ...

  4. Atitit.反编译apk android源码以及防止反编译apk

    Atitit.反编译apk android源码以及防止反编译apk 1.1. Tool  apk逆向助手1 1.2. 二.使用dex2jar + jd-gui 得到apk的java源码1 1.3. 用 ...

  5. 在Windows/Ubuntu下安装OpenGL环境(GLUT/freeglut)与跨平台编译(mingw/g++)

    GLUT/freeglut 是什么? OpenGL 和它们有什么关系? OpenGL只是一个标准,它的实现一般自带在操作系统里,只要确保显卡驱动足够新就可以使用.如果需要在程序里直接使用OpenGL, ...

  6. win下 golang 跨平台编译

    mac 下编译其他平台的执行文件方式请参看这篇文章,http://www.cnblogs.com/ghj1976/archive/2013/04/19/3030703.html  本篇文章是win下的 ...

  7. 项目androidAnt编译打包Android项目

    时间紧张,先记一笔,后续优化与完善. Ant编译打包Android项目 在Eclipse中对Android项目停止编译和打包如果项目比较大的话会比较慢,所以改为Ant工具来停止编译和打包 Ant环境配 ...

  8. 如何把iOS代码编译为Android应用

    新闻 <iPhone 6/6 Plus中国销量曝光:单月销量650万>:据iSuppli Corp.中国研究总监王阳爆料,iPhone 6和iPhone 6 Plus在国内受欢迎的情况大大 ...

  9. 一、cocos2d-x 3.0 final使用httpclient编译到android,须要用到的android.mk

    今天写一个网络框架,在vs上面非常欢快的执行车,心想,尼玛!cocos2d-x 3.0这么方便,预计不久的将来我就能回家种地了,由于不用程序猿了,直接cocos2dstudio拖界面了= =!!. 写 ...

随机推荐

  1. [USACO17FEB]Why Did the Cow Cross the Road III G

    嘟嘟嘟 首先看到这种序列的问题,我就想到了逆序对,然后就想如何把这道题转化. 首先要满足这个条件:ai <bi.那么我们把所有数按第一次出现的顺序重新赋值,那么对于新的数列,一定满足了ai &l ...

  2. caffe卷积层实现

    下图是jiayangqing在知乎上的回答,其实过程就是把image转换成矩阵,然后进行矩阵运算 卷积的实现在conv_layer层,conv_layer层继承了base_conv_layer层,ba ...

  3. Linq 集合比较

    List<RemindTbl> l_lstRemind = (from x in RemindTbl where (from y in RemindTblOld where x.Atten ...

  4. P4722 【模板】最大流

    P4722 [模板]最大流 加强版 / 预流推进 今日心血来潮,打算学习hlpp 然后学了一阵子.发现反向边建错了.容量并不是0.qwq 然后就荒废了一晚上. 算法流程的话.有时间补上 #includ ...

  5. 【洛谷P1879】玉米田Corn Fields

    玉米田Corn Fields 题目链接 此题和互不侵犯状压DP的做法类似 f[i][j]表示前i行,第i行种植(1)/不种植(0)构成的二进制数为j时的方案数 首先我们可以预处理出所有一行中没有两个相 ...

  6. Android学习笔记_67_Android MyCrashHandler 中异常处理 UncaughtExceptionHandler

    1.程序中故意抛出异常: public class ExceptionActivity extends Activity { String str; @Override public void onC ...

  7. centos7下javac:未找到命令的问题

    在linux下编译java程序,执行javac编译生成class文件时,在centos7终端输入如,javac hello.java    会提示未找到指令,但用java -verison测试环境变量 ...

  8. Angularjs实例2

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  9. MySQL表结构(含数据类型、字段备注注释)导出成Excel

    方法一: 1.用的是Navicat Premium,可以换成任意图形化客户端 SELECT COLUMN_NAME 列名, COLUMN_TYPE 数据类型, DATA_TYPE 字段类型, CHAR ...

  10. Oracle 行转列两种方法

    1.新建一个名为TEST表 create table TEST( STUDENT varchar2(20), COURSE varchar2(20), SCORE number); INSERT IN ...