交叉编译Node.js的contextify为ARM [英] Cross-compile Node.js contextify for ARM

查看:834
本文介绍了交叉编译Node.js的contextify为ARM的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图交叉编译的的node.js 的模块 contextify (作为其一部分的 jsdom )在我的64位的ARM平台Fedora的安装。不过,我似乎无法建立任何其他平台比我跑的之一。我尝试了不同的方法,如运行节点石膏--arch =手臂配置重建,或还节点石膏配置--without快照--dest-CPU =手臂--dest-OS = Linux的--with-臂浮动ABI = softfp重建(我一直在寻找这个问题的时候发现网上某处命令)。

构建成功运行,而不给予警告或错误。然而,似乎目标架构只是无所谓。我总是为我自己的64位系统中的一个二进制结束了,不为ARM别的我试过。使用 IA32 并没有改变任何事 - 它看起来像提供的参数只是没有任何效果。我在做什么错在这里?

下面是一个完整的控制台输出:

 的bash-4.2#节点石膏清洁配置--arch =手臂重建
石膏的信息,它的工作,如果它与行结束
使用node-gyp@1.0.2 GYP信息
使用node@0.10.29石膏资讯| Linux的| 64位
石膏信息蟒产卵
石膏信息产卵ARGS ['/usr/lib/node_modules/node-gyp/gyp/gyp_main.py',
石膏信息产卵ARGS'binding.gyp',
石膏信息产卵ARGS'-f',
石膏信息产卵ARGS'化妆',
石膏信息产卵ARGS'-I',
石膏信息产卵ARGS'/src/node_modules/jsdom/node_modules/contextify/build/config.gypi',
石膏信息产卵ARGS'-I',
石膏信息产卵ARGS'/usr/lib/node_modules/node-gyp/addon.gypi',
石膏信息产卵ARGS'-I',
石膏信息产卵ARGS'/.node-gyp/0.10.29/common.gypi',
石膏信息产卵ARGS'-Dlibrary = SHARED_LIBRARY',
石膏信息产卵ARGS'-Dvisibility =默认,
石膏信息产卵ARGS'-Dnode_root_dir = /。节点石膏/ 0.10.29,
石膏信息产卵ARGS'-Dmodule_root_dir = / src目录/ node_modules / jsdom / node_modules / contextify',
石膏信息产卵ARGS'--depth =',
石膏信息产卵ARGS'--no-水货',
石膏信息产卵ARGS'--generator输出',
石膏信息产卵ARGS'建设,
石膏信息产卵ARGS'-Goutput_dir =。 ]
石膏信息蟒产卵
石膏信息产卵ARGS ['/usr/lib/node_modules/node-gyp/gyp/gyp_main.py',
石膏信息产卵ARGS'binding.gyp',
石膏信息产卵ARGS'-f',
石膏信息产卵ARGS'化妆',
石膏信息产卵ARGS'-I',
石膏信息产卵ARGS'/src/node_modules/jsdom/node_modules/contextify/build/config.gypi',
石膏信息产卵ARGS'-I',
石膏信息产卵ARGS'/usr/lib/node_modules/node-gyp/addon.gypi',
石膏信息产卵ARGS'-I',
石膏信息产卵ARGS'/.node-gyp/0.10.29/common.gypi',
石膏信息产卵ARGS'-Dlibrary = SHARED_LIBRARY',
石膏信息产卵ARGS'-Dvisibility =默认,
石膏信息产卵ARGS'-Dnode_root_dir = /。节点石膏/ 0.10.29,
石膏信息产卵ARGS'-Dmodule_root_dir = / src目录/ node_modules / jsdom / node_modules / contextify',
石膏信息产卵ARGS'--depth =',
石膏信息产卵ARGS'--no-水货',
石膏信息产卵ARGS'--generator输出',
石膏信息产卵ARGS'建设,
石膏信息产卵ARGS'-Goutput_dir =。 ]
石膏信息产卵化妆
石膏信息产卵ARGS ['BUILDTYPE =释放','-C','建造']
令:进入目录`/ src目录/ node_modules / jsdom / node_modules / contextify /建设
使:警告:文件'contextify.target.mk'的修改时间0.044 S IN未来
  CXX(目标)发布/ obj.target / contextify / src目录/ contextify.o
  SOLINK_MODULE(目标)发布/ obj.target / contextify.node
  SOLINK_MODULE(目标)发布/ obj.target / contextify.node:成品
  COPY发布/ contextify.node
令:歪斜检测时钟:警告。您的创建可能是不完整的。
使:离开目录`/ src目录/ node_modules / jsdom / node_modules / contextify /建设
GYP信息确定


解决方案

您需要确保你有适当的CC,CXX等环境变量设置为交叉编译器在调用之前于节点石膏,以便它知道要使用的编译器。

I'm trying to cross-compile the node.js module contextify (as part of jsdom) for ARM platform on my 64bit Fedora installation. However, I seem unable to build for any other platform than the one I'm running on. I've tried different ways such as running node-gyp --arch=arm configure rebuild, or also node-gyp configure --without-snapshot --dest-cpu=arm --dest-os=linux --with-arm-float-abi=softfp rebuild (a command I've found online somewhere when looking for this problem).

The build runs successful without giving warnings or errors. However, it seems the target architecture just doesn't matter. I always end up with the a binary for my own 64bit system, not for ARM anything else I've tried. Using ia32 didn't change anything either - it looks like the provided parameters just have no effect. What am I doing wrong here?

Here's a complete console output:

bash-4.2# node-gyp clean configure --arch=arm rebuild
gyp info it worked if it ends with ok
gyp info using node-gyp@1.0.2
gyp info using node@0.10.29 | linux | x64
gyp info spawn python
gyp info spawn args [ '/usr/lib/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/src/node_modules/jsdom/node_modules/contextify/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/usr/lib/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/.node-gyp/0.10.29/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/.node-gyp/0.10.29',
gyp info spawn args   '-Dmodule_root_dir=/src/node_modules/jsdom/node_modules/contextify',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.' ]
gyp info spawn python
gyp info spawn args [ '/usr/lib/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/src/node_modules/jsdom/node_modules/contextify/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/usr/lib/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/.node-gyp/0.10.29/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/.node-gyp/0.10.29',
gyp info spawn args   '-Dmodule_root_dir=/src/node_modules/jsdom/node_modules/contextify',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.' ]
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
make: Entering directory `/src/node_modules/jsdom/node_modules/contextify/build'
make: Warning: File `contextify.target.mk' has modification time 0.044 s in the future
  CXX(target) Release/obj.target/contextify/src/contextify.o
  SOLINK_MODULE(target) Release/obj.target/contextify.node
  SOLINK_MODULE(target) Release/obj.target/contextify.node: Finished
  COPY Release/contextify.node
make: warning:  Clock skew detected.  Your build may be incomplete.
make: Leaving directory `/src/node_modules/jsdom/node_modules/contextify/build'
gyp info ok

解决方案

You need to make sure you have the appropriate CC, CXX, etc. environment variables set up for the cross compiler before invoking node-gyp so that it knows which compiler to use.

这篇关于交叉编译Node.js的contextify为ARM的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆