2014-08-28 34 views
2

嘗試編譯Ubuntu 14.04上的Node.js v0.10.31(和v0.10.30)以在Raspberry pi(運行ARM)上使用時。我用下面的編譯器標誌:錯誤爲armv7編譯node.js v0.10.31

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 

任何想法如何解決這個問題?謝謝!

回答

1

我最近在Raspberry Pi上安裝了Node(即使在Raspbian上也不要使用apt-get,如果你可以遷移到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 
+0

真棒,他們擁有最新的node.js v0.10.31預編譯! – Nyxynyx 2014-08-28 04:34:31

+0

如果此解決方案足夠好,請將其標記爲正確。感謝 – ederollora 2014-08-28 14:01:22

0

我使用以下方法在RPi上安裝node.js。

Install Node on the Raspberry Pi in 5 minutes

我發現的問題是,最新的node.js分佈(v0.10.31)不包括爲RPI預編譯的版本。我必須去包含預編譯的node.js爲RPi(v0.10.28)的最後一個發行版。這裏是鏈接到分發庫:

http://nodejs.org/dist/

+0

雖然此鏈接可能回答此問題,但最好在此處包含答案的重要部分並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 – bitoiu 2014-09-05 13:43:01

+0

感謝您的指導。我將在未來的答案中包含更多信息。 – 2014-09-08 14:09:46