nodejs&socket.IO 嵌入式linux移植与使用策略

先送福利

  如果你的处理器GCC编译器为ARM官方编译器,可以直接到nodejs官网下载现成的二进制文件,直接解压、注册,使用。? 是不是很爽
  由于大家的linux环境通常都是由万恶的第三方,也就是开发板设计商提供的。所以也许尽管你的处理器很靠谱,但是linux可能不支持很多新的特征(╯﹏╰),所以多下载几个版本试试吧╮(╯▽╰)╭。
本人比较粗心,如果有什么错误欢迎大家留言指正,博主错个逗号,吃瓜群主折腾半月 ?

预备信息

  1、我的平台为am335x( ̄┰ ̄*),请到TI官网下载对应的GCC编译器(目前市面上流行的开发板,编译器通常不支持C++11,会导致编译不通过)
  2、到nodejs官网下载源码(由于TI对ARM内核的优化,导致官方直接提供的二进制程序无法在TI芯片上直接执行,必须自己进行交叉编译。试了很多个,nodejs0.12可以在我的板子上正常运行)
  3、ubuntu必须为较高的版本,比如目前最新的ubunt18 x64

nojs代码编译

step1:请安装VMWare12虚拟机(ノ*・ω・)ノ,不会的去门口罚站( ̄ ‘i  ̄;)

step2:在虚拟机中安装ubuntu18 x64(@ ̄ー ̄@)

step3:gcc交叉编译器的安装(请自行寻找适合自己处理器的交叉编译器,这里以TI_am335x编译器为例)

  1、把下载好的编译器复制到linux虚拟机(我下载到的是“gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf.tar”)
  2、将其解压到目录/usr/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf目录下,命令为 tar -xvf gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf.tar
  3、在/etc/profile文件增加:
export PATH=/usr/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf/bin$PATH:
export CC=arm-linux-gnueabihf-gcc
export CXX=arm-linux-gnueabihf-g++
export LD=arm-linux-gnueabihf-ld
export RAINLIB=arm-linux-gnueabihf-rainlib
export AR=arm-linux-gnueabihf-ar

step4:环境配置与交叉编译

  1、在shell中执行环境变量配置,命令为:source /etc/profile
  2、下载node源码文件,并解压到/home,会建立一个/home/node的目录。
mkdir /home/armnodejs —>编译后node.js的二进制文件放到此目录。
cd /home/node ,然后执行:
./configure --prefix=/home/armnodejs --dest-cpu=arm --dest-os=linux --cross-compiling --fully-static --with-arm-float-abi=hard --without-snapshot
如果失败了,最简单的办法是换个node版本试试 ?
  3、我的是单核处理器,直接执行指令:make
然后执行指令:make install

打包

  1、退回到/home路径,执行指令:tar -cf armnodejs.tar armnodejs。打包完成
  2、打包完后放到开发板,进入armnodejs/bin 目录,执行指令:./node --version 查看能够弹出版本号
  3、然后执行指令:./node
如果弹出小箭头(>),那么执行指令:console.log(‘hello’)。如果有hello弹出恭喜你编译和移植已经没问题了

如果失败了,可以换个版本试试,如果你的开发板实在是惨无人道,就O(∩_∩)O~了

网页与socket.io下载

  1、npm简介(有很多博文,自己baidu去)
这里只考虑一个指令 : npm install socket.io@1.3.7(我的0.12版本适合这个,具体看个人使用的版本)
  2、随便找个环境(我的开发板npm可以执行,但是啥文件都查不到,估计版本太老了开源社区不管了,(/ω╲)),可以在windows上安装nodejs(全自动的,就不多说了)。然后找个文件夹,比如D:盘。使用命令行执行指令:npm install socket.io@1.3.7(根据自己版本,烂人:-D,目前最新版本2.2)
  3、然后你就获得了一个文件夹:node_modules。把这个文件夹放到你开发的web项目的根目录下
  4、然后再web根目录下创建app.js。服务器的js脚本,调用socketio事件处理机制
  5、写个html脚本,读取个简单的累加的静态变量累加,或者参考《Node学习指南》第十三章

测试

1、将测试通过的node放到开发板,并进行注册
  ln -s /armnodjs/bin/node /usr/local/bin
  ln -s /armnodjs/bin/npm /usr/local/bin
2、在超级终端进入web目录,执行指令:node app.js
3、打开浏览器,然后自己慢慢调吧!

参考文档

https://blog.csdn.net/wanyi3605/article/details/78131241
  《Node学习指南》
  《HTMl、CSS和JavaScript入门经典》

遗留问题及思考

  1. 同志们使用的都是sqlite3数据库,而sqlite3的插件除了最新的nodejs10版本,其他的nodejs版本都下载不到,但是liunx最新的nodejs版本只是8一脸懵逼。而且开发板上这破玩意npm不能用,node-gyp就更不用想了。 sqlite3插件搞不进去,绕道走c++插件也搞不了,折腾了半天还是白搭。
  2. 新东西都是大家一起爬坑走完的,希望知道的通知给留个言,发个贴 ?
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值