Кросс-компиляция NodeJS для Windows CE на ARMv11
Я пытаюсь кросс-компиляции NodeJS для Windows CE, и я не могу понять это. Мы хотели бы запустить Node на устройствах, использующих процессоры Freescale ARM1136-MX35.
Я попытался использовать cegcc, но безрезультатно, и я также попытался настроить с помощью: ./configure --without-npm --without-ssl --without-snapshot --dest-cpu=arm --dest-os=win
, но было слишком много ошибок. Кто-нибудь имел успех компиляции Node для Windows CE?
Вот ошибка, которую я получаю, используя обычный gcc:
root@kevin-vm:~/node-v0.10.26# make
make -C out BUILDTYPE=Release V=1
make[1]: Entering directory `/root/node-v0.10.26/out'
g++ '-DNODE_WANT_INTERNALS=1' '-DARCH="arm"' '-DPLATFORM="linux"' '-DNODE_TAG=""' '-DHAVE_OPENSSL=0' '-DHAVE_ETW=1' '-DHAVE_PERFCTR=1' '-D__POSIX__' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-D_POSIX_C_SOURCE=200112' -I../src -I../tools/msvs/genfiles -I../deps/uv/src/ares -I/root/node-v0.10.26/out/Release/obj/gen -I../deps/v8/include -I../deps/zlib -I../deps/http_parser -I../deps/cares/include -I../deps/uv/include -Wall -Wextra -Wno-unused-parameter -pthread -O2 -fno-strict-aliasing -fno-tree-vrp -fno-omit-frame-pointer -fno-rtti -fno-exceptions -MMD -MF /root/node-v0.10.26/out/Release/.deps//root/node-v0.10.26/out/Release/obj.target/node/src/node.o.d.raw -c -o /root/node-v0.10.26/out/Release/obj.target/node/src/node.o ../src/node.cc
In file included from ../src/node_counters.h:36:0,
from ../src/node.cc:35:
../src/node_win32_perfctr_provider.h:33:8: error: ‘HANDLE’ does not name a type
../src/node_win32_perfctr_provider.h: In function ‘bool node::NODE_COUNTER_ENABLED()’:
../src/node_win32_perfctr_provider.h:35:45: error: ‘NodeCounterProvider’ was not declared in this scope
make[1]: *** [/root/node-v0.10.26/out/Release/obj.target/node/src/node.o] Error 1
make[1]: Leaving directory `/root/node-v0.10.26/out'
make: *** [node] Error 2
Используя cegcc:
root@kevin-vm:~/node-v0.10.26# make
/usr/bin/python tools/gyp_node.py -f make
make -C out BUILDTYPE=Release V=1
make[1]: Entering directory `/root/node-v0.10.26/out'
arm-cegcc-gcc '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-D_GNU_SOURCE' '-DHAVE_CONFIG_H' '-DCARES_STATICLIB' -I../deps/cares/include -I../deps/cares/src -I../deps/cares/config/linux -Wall -Wextra -Wno-unused-parameter -pthread -g --std=gnu89 -pedantic -Wall -Wextra -Wno-unused-parameter -O2 -fno-strict-aliasing -fno-tree-vrp -fno-tree-sink -fno-omit-frame-pointer -MMD -MF /root/node-v0.10.26/out/Release/.deps//root/node-v0.10.26/out/Release/obj.target/cares/deps/cares/src/ares_cancel.o.d.raw -c -o /root/node-v0.10.26/out/Release/obj.target/cares/deps/cares/src/ares_cancel.o ../deps/cares/src/ares_cancel.c
arm-cegcc-gcc: unrecognized option '-pthread'
/bin/../libexec/gcc/arm-cegcc/4.4.0/cc1: error while loading shared libraries: libmpfr.so.1: cannot open shared object file: No such file or directory
make[1]: *** [/root/node-v0.10.26/out/Release/obj.target/cares/deps/cares/src/ares_cancel.o] Error 1
make[1]: Leaving directory `/root/node-v0.10.26/out'
make: *** [node] Error 2
Изменить: Наша компания решила прекратить использование продуктов Windows CE и перешла на встроенные системы Linux (ARMv6), и она отлично работает на 0.12.2.