如何在安装了fun_plug 0.5的D-Link DNS 325上编译NodeJS?

我试图在我的NAS设备上编译节点,但是我得到这个错误,而且我不知道如何完成这个工作:

/node-v0.6.6/deps/v8/src/arm/constants-arm.h:33:2: error: #error ARM EABI support is required. scons: *** [obj/release/accessors.o] Error 1 scons: building terminated because of errors. Waf: Leaving directory `/ffp/home/root/node-v0.6.6/out' Build failed: -> task failed (err #2): {task: libv8.a SConstruct -> libv8.a} 

有人实际pipe理是否让Node在D-Link NAS上编译? 有人知道有任何官方指导来做这个或我应该在哪里寻求帮助?

非常感谢。

DNS320,Fonzplug,NodeJS,Funplug(DNS323,我的原始目标)也似乎适用于sheeva plug!

(作为利益323需要大约7.5小时才能编译,而320需要1小时3分钟)

(也在1G8英特尔Linux(Debian)上编译大约需要15分钟)

========================注意:在fonz插件 – 你需要安装以下内容:

  • 的binutils
  • 项目清单
  • 内核头
  • pkg配置
  • uClibc的
  • GCC
  • 使
  • gettext的
  • 补丁
  • 野牛
  • 柔性
  • autoconf的
  • automake的

=======================那么你可以:

 exported TMPDIR=/ffp/tmp (need this to put tmp files on HD not in memory!) export CC='gcc -march=armv5t -mfloat-abi=softfp -fno-tree-sink -O0' export CCFLAGS='-march=armv5t -mfloat-abi=softfp -fno-tree-sink -O0' export CXX='g++ -march=armv5t -mfloat-abi=softfp -fno-tree-sink -O0' export GCC='-march=armv5t -mfloat-abi=softfp -fno-tree-sink -O0' ./configure --prefix=/ffp --without-snapshot ...... make ............. make install 

笔记:

我已经有了NodeJS 0.4.9的经验 – 所以我一直在使用它 – 读到为什么!

其实编译没有错误! 但!

当运行 – 非法指令 – 弹出

这似乎是因为V8是预期编译的主机不是一个手臂!

看下面的参考资料我已经找到了:(花了我6个月的时间来找到所有这些)有人,在某个地方已经决定,在ARM上运行是一个嵌入式的环境,因此,你永远不会编译!

有权威的人可以解决这个问题!!!!!!!!

事实上,我可以得到一个干净的编译,说它可以工作,但至少V8不希望我们呢?

原始说明: https : //github.com/joyent/node/wiki/Installation

我还发现了什么:

 http://code.google.com/p/v8/wiki/CrossCompilingForARM http://code.google.com/p/v8/issues/detail?id=914 http://code.google.com/p/v8/issues/detail?id=1632&q=vfp%20off&colspec=ID%20Type%20Status%20Priority%20Owner%20Summary%20HW%20OS%20Area%20Stars https://github.com/joyent/node/issues/1566 http://fastr.github.com/articles/Node.js-on-OpenEmbedded.html http://freebsd.1045724.n5.nabble.com/problems-with-cvsup-on-FreeBSD-9-snapshot-201101-td4491053.html http://code.google.com/p/v8/issues/detail?id=1446 http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dai0133c/index.html http://infocenter.arm.com/help/topic/com.arm.doc.qrc0007e/QRC0007_VFP.pdf https://github.com/joyent/node/issues/1386 https://github.com/joyent/node/issues/2131 

从这篇文章中,需要预装的fonz东西的最小安装:

 http://www.shadowandy.net/2008/08/adding-compiling-capabilities-to-your-dns-323.htm 

DNS323 – 维基网站(新的?? ??)

 http://dns323.kood.org/dns-320 http://tsd.dlink.com.tw/downloads2008detail.asp (open source for dlink find dns then 320 - or 323 etc) 

编译器选项:

 http://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html 

调试选项: http : //gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html

利益:

 http://itrs.tw/wiki/Code_Sourcery_G%2B%2B_Lite http://pandorawiki.org/Floating_Point_Optimization http://wiki.debian.org/ArmHardFloatPort/VfpComparison https://groups.google.com/group/nodejs-dev/browse_thread/thread/18bfc495b01e2f9b/8507143b5578ebf9#8507143b5578ebf9 http://stackoverflow.com/questions/6788768/cannot-build-node-on-sheevaplug-armv5t-with-debian-squeeze/6790823#6790823 http://www.plugcomputer.org/plugwiki/index.php/Scratchbox2_based_cross_compiling 

为什么是0.4.9,而不是0.6.6? 6.6可能会在同一个地方出来,但错误说EABI错误,与Fonz编译器不了解EABI。

我认为V8家伙(或节点家伙)已经将错误描述符重新标记为EABI,我不知道足以追查问题。 还有一些其他开关可供编译器使用 – 我放弃了所有的尝试(其他人似乎也发现了相同的问题,他们比我更知道,所以我将假设他们已经尝试了所有的可用的开关,可以有所作为)。

作为一个感兴趣的问题,V8编译只使用CXXFLAGS开关进行编译,而NodeJS的其余部分似乎使用了我标记过的其他编译器!

还要注意,为了使快照运行,它指向/ tmp – 无论我做什么, – 我最终将/ tmp移动到/ tmp1和ln -s / tmp / ffp / tmp

mv / tmp / tmp1

ln -s / tmp / ffp / tmp