【发布时间】:2014-11-05 23:47:50
【问题描述】:
我正在尝试在我的 64 位上为 ARM 平台交叉编译 node.js 模块 contextify(作为 jsdom 的一部分) Fedora 安装。但是,除了我正在运行的平台之外,我似乎无法为任何其他平台构建。我尝试了不同的方法,例如运行 node-gyp --arch=arm configure rebuild 或 node-gyp configure --without-snapshot --dest-cpu=arm --dest-os=linux --with-arm-float-abi=softfp rebuild(我在查找此问题时在网上某处找到的命令)。
构建运行成功,没有给出警告或错误。然而,目标架构似乎并不重要。我总是以我自己的 64 位系统的二进制文件结束,而不是我尝试过的任何其他 ARM 文件。使用 ia32 也没有改变任何东西 - 看起来提供的参数只是没有效果。我在这里做错了什么?
这是一个完整的控制台输出:
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
【问题讨论】:
-
你是否为交叉编译器设置了合适的
CC、CXX等环境变量? -
天啊。我现在真的真的觉得自己很傻。
CC=arm-linux-gnueabihf-gcc-4.7 CXX=arm-linux-gnueabihf-g++-4.7 node-gyp clean configure --arch=arm rebuild成功了...谢谢,mscdex
标签: linux node.js arm jsdom contextify