Кросс-компиляция контекста Node.js для ARM

Я пытаюсь кросс-компилировать модуль node.js contextify (как часть jsdom) для платформы ARM на моей 64-битной установке Fedora. Тем не менее, я, кажется, не могу построить для какой-либо другой платформы, кроме той, на которой я работаю. Я пробовал разные способы, такие как запуск node-gyp --arch=arm configure rebuild, а также node-gyp configure --without-snapshot --dest-cpu=arm --dest-os=linux --with-arm-float-abi=softfp rebuild (команда, которую я нашел где-то в Интернете, когда искал эту проблему).

Сборка выполняется успешно, без предупреждений или ошибок. Однако, похоже, целевая архитектура просто не имеет значения. Я всегда получаю двоичный файл a для своей собственной 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 [email protected]
gyp info using [email protected] | 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

person André    schedule 11.09.2014    source источник
comment
У вас есть соответствующие переменные среды CC, CXX и т. д., настроенные для кросс-компилятора?   -  person mscdex    schedule 12.09.2014
comment
МОЙ БОГ. Я действительно, действительно чувствую себя глупо сейчас. CC=arm-linux-gnueabihf-gcc-4.7 CXX=arm-linux-gnueabihf-g++-4.7 node-gyp clean configure --arch=arm rebuild помогает... Спасибо, mscdex   -  person André    schedule 12.09.2014


Ответы (1)


Вы должны убедиться, что у вас есть соответствующие переменные среды CC, CXX и т. д., настроенные для кросс-компилятора, прежде чем вызывать node-gyp, чтобы он знал, какой компилятор использовать.

person mscdex    schedule 11.09.2014