错误为armv7编译node.js v0.10.31

尝试编译Ubuntu 14.04上的Node.js v0.10.31(和v0.10.30)以在Raspberry pi(运行ARM)上使用时。 我正在使用下面的编译器标志:

export AR=arm-linux-gnueabihf-ar export CC=arm-linux-gnueabihf-gcc export CXX=arm-linux-gnueabihf-g++ export LINK=arm-linux-gnueabihf-g++ 

但是,我得到以下错误:

 make -C out BUILDTYPE=Release V=1 make[1]: Entering directory `/home/ubuntu/node/out' arm-linux-gnueabihf-g++ -pthread -rdynamic -Wl,--whole-archive /home/ubuntu/node/out/Release/libopenssl.a -Wl,--no-whole-archive -Wl,--whole-archive /home/ubuntu/node/out/Release/obj.target/deps/v8/tools/gyp/libv8_base.a -Wl,--no-whole-archive -pthread -o /home/ubuntu/node/out/Release/node -Wl,--start-group /home/ubuntu/node/out/Release/obj.target/node/src/fs_event_wrap.o /home/ubuntu/node/out/Release/obj.target/node/src/cares_wrap.o /home/ubuntu/node/out/Release/obj.target/node/src/handle_wrap.o /home/ubuntu/node/out/Release/obj.target/node/src/node.o /home/ubuntu/node/out/Release/obj.target/node/src/node_buffer.o /home/ubuntu/node/out/Release/obj.target/node/src/node_constants.o /home/ubuntu/node/out/Release/obj.target/node/src/node_extensions.o /home/ubuntu/node/out/Release/obj.target/node/src/node_file.o /home/ubuntu/node/out/Release/obj.target/node/src/node_http_parser.o /home/ubuntu/node/out/Release/obj.target/node/src/node_javascript.o /home/ubuntu/node/out/Release/obj.target/node/src/node_main.o /home/ubuntu/node/out/Release/obj.target/node/src/node_os.o /home/ubuntu/node/out/Release/obj.target/node/src/node_script.o /home/ubuntu/node/out/Release/obj.target/node/src/node_stat_watcher.o /home/ubuntu/node/out/Release/obj.target/node/src/node_string.o /home/ubuntu/node/out/Release/obj.target/node/src/node_zlib.o /home/ubuntu/node/out/Release/obj.target/node/src/pipe_wrap.o /home/ubuntu/node/out/Release/obj.target/node/src/signal_wrap.o /home/ubuntu/node/out/Release/obj.target/node/src/string_bytes.o /home/ubuntu/node/out/Release/obj.target/node/src/stream_wrap.o /home/ubuntu/node/out/Release/obj.target/node/src/slab_allocator.o /home/ubuntu/node/out/Release/obj.target/node/src/tcp_wrap.o /home/ubuntu/node/out/Release/obj.target/node/src/timer_wrap.o /home/ubuntu/node/out/Release/obj.target/node/src/tty_wrap.o /home/ubuntu/node/out/Release/obj.target/node/src/process_wrap.o /home/ubuntu/node/out/Release/obj.target/node/src/v8_typed_array.o /home/ubuntu/node/out/Release/obj.target/node/src/udp_wrap.o /home/ubuntu/node/out/Release/obj.target/node/src/node_crypto.o /home/ubuntu/node/out/Release/obj.target/deps/openssl/libopenssl.a /home/ubuntu/node/out/Release/obj.target/deps/zlib/libchrome_zlib.a /home/ubuntu/node/out/Release/obj.target/deps/http_parser/libhttp_parser.a /home/ubuntu/node/out/Release/obj.target/deps/cares/libcares.a /home/ubuntu/node/out/Release/obj.target/deps/uv/libuv.a /home/ubuntu/node/out/Release/obj.target/deps/v8/tools/gyp/libv8_base.a /home/ubuntu/node/out/Release/obj.target/deps/v8/tools/gyp/libv8_nosnapshot.a -Wl,--end-group -lm -ldl -lrt /home/ubuntu/node/out/Release/libopenssl.a(armcap.o): In function `OPENSSL_cpuid_setup': armcap.c:(.text.startup+0x0): multiple definition of `OPENSSL_cpuid_setup' /home/ubuntu/node/out/Release/libopenssl.a(cryptlib.o):cryptlib.c:(.text+0x360): first defined here /home/ubuntu/node/out/Release/libopenssl.a(armcap.o): In function `OPENSSL_rdtsc': armcap.c:(.text+0x36): undefined reference to `_armv7_tick' /home/ubuntu/node/out/Release/libopenssl.a(armcap.o): In function `OPENSSL_cpuid_setup': armcap.c:(.text.startup+0xe0): undefined reference to `_armv7_tick' armcap.c:(.text.startup+0x10c): undefined reference to `_armv7_neon_probe' collect2: error: ld returned 1 exit status make[1]: *** [/home/ubuntu/node/out/Release/node] Error 1 make[1]: Leaving directory `/home/ubuntu/node/out' make: *** [node] Error 2 

任何想法如何解决这个错误? 谢谢!

我最近在Raspberry Pi上安装了Node(不要使用apt-get,即使在Raspbian上也是如此,如果你可以迁移到Raspbian,据我所知Ubuntu不喜欢ARM)。 尝试这个:

 $ cd /home/pi/node/ #or any directory you want $ wget http://node-arm.herokuapp.com/node_latest_armhf.deb $ sudo dpkg -i node_latest_armhf.deb 

如果你试图打开REPL( $ node ),这会给你一个错误,可能是因为找不到可执行文件。 在这种情况下,下面的命令使它适用于我:

 $ hash -r 

我使用以下方式在RPi上安装node.js。

在5分钟内在树莓派上安装节点

我发现的问题是最新的node.js发行版(v0.10.31)没有包含RPi的预编译版本。 我不得不去包含RPi(v0.10.28)的预编译node.js的最后一个发行版。 这是链接到分配存储库:

http://nodejs.org/dist/