错误为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的最后一个发行版。 这是链接到分配存储库: