linux - 为 ARM 交叉编译 Node.js contextify

标签 linux node.js arm jsdom contextify

我正在尝试在 64 位上为 ARM 平台交叉编译 node.js 模块 contextify(作为 jsdom 的一部分)费多拉安装。然而,我似乎无法为我正在运行的平台之外的任何其他平台进行构建。我尝试了不同的方法,例如运行node-gyp --arch=armconfigurerebuild,或者node-gypconfigure--without-snapshot--dest-cpu=arm-- dest-os=linux --with-arm-float-abi=softfp重建(我在寻找这个问题时在网上找到的命令)。

构建成功运行,没有给出警告或错误。然而,目标架构似乎并不重要。我总是最终得到适用于我自己的 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 <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="036d6c67662e647a7343322d332d31" rel="noreferrer noopener nofollow">[email protected]</a>
gyp info using <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="046a6b606144342a35342a363d" rel="noreferrer noopener nofollow">[email protected]</a> | 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

最佳答案

在调用node-gyp之前,您需要确保为交叉编译器设置了适当的CC、CXX等环境变量,以便它知道要使用哪个编译器。

关于linux - 为 ARM 交叉编译 Node.js contextify,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25797424/

相关文章:

node.js - TS : Module augmentation, <Type> 仅指类型,但在此处用作值

arm - 在 aarch64 上运行 32 位 elf

linux - Linux 目标上的内核配置存储在哪里?

node.js - ACL 最佳实践,在用户对象中存储角色,还是单独的表/集合?

node.js - Req.body 在 node.js 中不可迭代

c++ - 为什么 gcc 在按值传递微不足道的结构时会发出不需要的内存访问?

c - ARM C中main中声明的全局变量和变量的区别

linux - 使用带有 sed 的 bash 脚本修改文件

c++ - 将图像位发送到嵌入在 FPGA 中的 HDL 生成的 RAM block

Linux shell : sed regex working with special char