OpenWrt下交叉编译Node.js(HG255D)

操作系统:deepin linux 2013 或 ubuntu 13.04

1、安装交叉编译前,需要安装的包

sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawk flex quilt xsltproc

2、下载OpenWrt的源代码

git clone git://git.openwrt.org/openwrt.git
cd openwrt
./scripts/feeds update -a
./scripts/feeds install -a
make defconfig
make prereq
make menuconfig

按照下图选择对应的项目

3.关键的一步

cd package
mkdir node
sudo gedit Makefile
#
# Copyright (C) 2006-2011 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

include $(TOPDIR)/rules.mk

PKG_NAME:=node
#目前最新版本
PKG_VERSION:=v0.10.28
PKG_RELEASE:=2

PKG_SOURCE:=node-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://nodejs.org/dist/${PKG_VERSION}
#更改版本时也要修改
PKG_MD5SUM:=87768be7065d2120e71619948ab4bb2d

GYP_DEFINES:=v8_use_mips_abi_hardfloat=false v8_can_use_fpu_instructions=false
LIBS:=-I$(TOOLCHAIN_DIR)/mipsel-openwrt-linux-uclibc/include/c++/4.8.3/ -I$(TOOLCHAIN_DIR)/mipsel-openwrt-linux-uclibc/include/c++/4.8.3/mipsel-openwrt-linux-uclibc/

include $(INCLUDE_DIR)/package.mk

define Package/node
  DEPENDS:=+libpthread +librt +uclibcxx
  SECTION:=lang
  CATEGORY:=Languages
  TITLE:=Node.js is a platform built on Chrome‘s JavaScript runtime
  URL:=http://nodejs.org/
endef

define Package/node/description
Node.js is a platform built on Chrome‘s JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.
endef

define Build/Prepare
	$(call Build/Prepare/Default)
	$(CP) node.patch $(PKG_BUILD_DIR)/
	(cd $(PKG_BUILD_DIR); 	patch -p1 < node.patch; 	);
endef

define Build/Configure
	(cd $(PKG_BUILD_DIR); 	export LIBS="$(LIBS)"; 	export CFLAGS="$(TARGET_CFLAGS) $(LIBS)"; 	export CXXFLAGS="$(TARGET_CXXFLAGS) $(LIBS)";     export GYPFLAGS="$(GYPFLAGS)"; 	./configure --dest-cpu=mipsel --dest-os=linux --without-ssl --without-snapshot --with-arm-float-abi=soft; 	);
endef

define Build/Compile
	$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) GYP_DEFINES="$(GYP_DEFINES)" CC="$(TARGET_CC)" CXX="$(TARGET_CXX)" CFLAGS="$(TARGET_CFLAGS) $(LIBS)" CXXFLAGS="$(TARGET_CXXFLAGS) $(LIBS) -nostdinc++" LDFLAGS="$(TARGET_LDFLAGS) -nodefaultlibs -luClibc++ -lc -lgcc -lgcc_s -lpthread" || touch $(PKG_BUILD_DIR)/deps/v8/build/common.gypi
	$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) GYP_DEFINES="$(GYP_DEFINES)" CC="$(TARGET_CC)" CXX="$(TARGET_CXX)" CFLAGS="$(TARGET_CFLAGS) $(LIBS)" CXXFLAGS="$(TARGET_CXXFLAGS) $(LIBS) -nostdinc++" LDFLAGS="$(TARGET_LDFLAGS) -nodefaultlibs -luClibc++ -lc -lgcc -lgcc_s -lpthread"
endef

define Package/node/install
	mkdir -p $(1)/usr/bin
	$(CP) $(PKG_BUILD_DIR)/out/Release/node $(1)/usr/bin/
	ln -s /usr/bin/node $(1)/usr/bin/nodejs
endef

$(eval $(call BuildPackage,node))

4.保存配置文件后编译:  make V=99 (参数为输出调试信息)

5.把openwrt/bin/ramips/packages下的

node_v0.10.28-2_ramips_24kec.ipk

uclibcxx_0.2.4-1_ramips_24kec.ipk

懒得自己编译的同学,可以到我的网盘下载

http://pan.baidu.com/s/1eQ1Pkdk

拷贝到路由器,先安装uclibcxx_0.2.4-1_ramips_24kec.ipk库,再安装node_v0.10.28-2_ramips_24kec.ipk,安装node的时候要耐心等待,我第一次安装的时候等了一会没有响应,以为编译失败了,终止了安装进程,因此而耗费了很多时间。

OpenWrt下交叉编译Node.js(HG255D)

时间: 2024-12-23 01:34:14

OpenWrt下交叉编译Node.js(HG255D)的相关文章

mac下配置Node.js开发环境、express安装、创建项目

mac下配置Node.js开发环境.express安装.创建项目 一.node.js的安装 去官网下载对应的平台版本就可以了,https://nodejs.org 二.express安装 sudo npm install -g express 进行全局安装. 这时有可能会安装不成功,用下面的命令即可 sudo npm install express-generator -g 三.创建项目 终端输入 express -e 你的项目名称 -e 为使用ejs框架 express默认为jade,为了 学

Vue框架下的node.js安装教程

Vue框架下的node.js安装教程 python服务器.php  ->aphche.java ->tomcat.   iis -->它是一个可以运行JAVASCRIPTR 的运行环境 -->它可以作为后端语言(websocket \ ) --强大的包管理工具npm,可以使用它安装插件 -->VUE框架是基于node.js平台运行的 --->它是基于chrome浏览器的V8引擎,运行速度快,性能高效 安装淘宝镜像:npm install cnpm -g --regist

Windows 下安装 Node.js

搭建博客系列的 Node.js 环境安装.Windows 下面安装可以通过图形化界面进行安装,非常方面. 1.打开 Node.js 官网,下载对应版本的安装包(msi 后缀的) 2.双击运行下载的程序,点击 next 下一步,然后勾选同意安装协议,安装路径修改成之前建立好的 Tools 文件夹下,或者其它目录,也可以使用默认路径. 3.自定安装,这里我们选择默认就可以了. 4.点击 install 按钮进行安装,等待一下,出现 Finish 按钮,点击完成安装. 5.安装完成之后,我们打开命令行

【win7下安装node.js错误:roling back action】与【&quot;grunt&quot; 不是内部或外部命令】 解决方法

[win7下安装node.js错误:roling back action] 解决方法: Node.js 服务器端的JavaScript Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的 易于扩展的网络应用· Node.js 借助事件驱动, 非阻塞I/O 模型变得轻量和高效, 非常适合 运行在分布式设备 的 数据密集型 的实时应用 本文为大家讲解的是在win7下安装node.js到最后时出现回滚,安装失败的解决方法,感兴趣的同学参考下. 问

在linux环境下安装Node.JS

在linux环境下安装Node.JS 1.确定自己linux操作系统的位数 uname -a 2.选择合适版本的node.js 3.上传服务器并解压 解压上传的nodejs文件 tar -xvf node-v8.12.0-linux-x64.tar.xz mv node-v8.12.0-linux-x64 nodejs 4.建立软连接 ln -s /usr/local/software/nodejs/node-v8.12.0-linux-x64/npm /usr/local/bin/ ln -s

Mac环境下安装node.js、npm、express

一:node.js安转 方法一:下载node.js for Mac 地址: http://nodejs.org/download/ 直接下载 pkg的,双击安装,一路点next,很容易就搞定了. 安装完会提醒注意 node和npm的路径是 /usr/local/bin. 方法二:用Homebrew安装 1.安装Homebrew Homebrew的安装非常简单,打开终端复制.粘贴以下命令,回车,搞定. ruby -e "$(curl -fsSL https://raw.githubusercont

Mac下进行Node.js开发环境的配置

我们知道,Mac是一款天生可以提升我们开发效率的系统,合理的使用Mac下面的神器,有助于提升我们的开发效率.个人是个VIM控,今天分享一下,我在mac下是如何进行Node.js的开发环境搭建的.先给大家看看最终的效果图片吧! Iterm2 首先,推荐Iterm2这款命令行神器.它是一款终端替代工具,支持 Macos 10.5+ 版本.它具备很多优点:比如开源免费.快捷键丰富.水平垂直分屏.远程使用vi时兼容性好.如果再加上一点,就是它UI也比较友好,如果你喜欢捣鼓,可以配置主题,让iterm2界

Mac下进行Node.js开发环境配置

我们知道,Mac是一款天生可以提升我们开发效率的系统,合理的使用Mac下面的神器,有助于提升我们的开发效率.个人是个VIM控,今天分享一下,我在mac下是如何进行Node.js的开发环境搭建的.先给大家看看最终的效果图片吧! Iterm2 首先,推荐Iterm2这款命令行神器.它是一款终端替代工具,支持 Macos 10.5+ 版本.它具备很多优点:比如开源免费.快捷键丰富.水平垂直分屏.远程使用vi时兼容性好.如果再加上一点,就是它UI也比较友好,如果你喜欢捣鼓,可以配置主题,让iterm2界

windows下安装node.js过程

网上的版本已经非常非常多了,但每次都要翻找很是麻烦. 变成自己的东西之后,直接定位,免搜索,何乐而不为~ 首先,当然是上官网(http://nodejs.org/)下载安装包了,自用的话,习惯性用最新版本吧,但如果是企业内部,可能由于某些原因,不适合用高版本的,自己看着办~ 然后,傻瓜式安装(我就是傻瓜到连路径都懒得改的人,什么?万一系统挂了,要重装怎么办?那就重装呗,多大的事...) 安装完后(我装的是 v0.12.0 版本),可以在刚才的安装目录找到nodejs文件夹,在 C:\Users\