2015-02-05 90 views
1

我嘗試編譯以在chroot(armel wheezy)環境中嵌入式linux上編譯node.js。該系統具有所有必需的工具版本。爲armv7編譯nodejs 10.36 for armv7

  • 的Python 2.7.3
  • GCC 4.6
  • GNU請3.81

cpuinfo中:

處理器:ARMv7的處理器10修訂版(v7l) 處理器:0 BogoMIPS:790.52

處理器:1 BogoMIPS:790.52

處理器:2 BogoMIPS:790.52

處理器:3 BogoMIPS:790.52

特點:SWP半拇指fastmult VFP EDSP氖vfpv3可使 CPU實施者:的0x41 CPU架構:7 CPU變體:0x2 CPU部分:0xc09 CPU修訂版:10

經過多次嘗試和在網絡上的研究,我可以com堆積它,但我在鏈接時收到錯誤。

我做到以下幾點:

export CFLAGS='-march=armv7-a' 
export CXXFLGAS='-march=armv7-a' 
./configure --dest-cpu=armv7 --without-snapshot --without-ssl --dest-os=linux 

我改變的選項,但沒有效果。 用作選項--dest-cpu = arm導致編譯錯誤(不支持BLX)。因此我使用了armv7,它是這個系統上正確的CPU。 我編譯和鏈接下面的錯誤後收到:

/root/node-v0.10.36/out/Release/obj.target/deps/v8/tools/gyp/libv8_base.a(platform-posix.o): In function v8::internal::init_fast_log_function()': platform-posix.cc:(.text+0x598): undefined reference to v8::internal::CreateTranscendentalFunction(v8::internal::TranscendentalCache::Type)' /root/node-v0.10.36/out/Release/obj.target/deps/v8/tools/gyp/libv8_base.a(platform-posix.o): In function v8::internal::init_fast_sqrt_function()': platform-posix.cc:(.text+0x5e4): undefined reference to v8::internal::CreateSqrtFunction()' collect2: ld returned 1 exit status make[1]: * [/root/node-v0.10.36/out/Release/node] Error 1 make[1]: Leaving directory `/root/node-v0.10.36/out' make: * [node] Error 2

我不知道,我能做些什麼來鏈接文件。我怎樣才能完成鏈接過程?

回答

1

我找到了一個解決方案。

我添加了參數-mthumb-interwork並將其配置爲不帶任何參數。現在它被編譯和安裝。

export CFLAGS='-march=armv7-a -mthumb-interwork' export CXXFLAGS='-march=armv7-a -mthumb-interwork'