2011-07-22 71 views
3

我現在已經嘗試了幾種在/爲運行Debian(版本6.0.2)的Sheevaplug(armv5t)擠壓時構建節點(版本0.5.1)的方法,但總是結束與...無法使用Debian擠壓在Sheevaplug(armv5t)上構建節點

$ node 
Illegal instruction 

......在任何我能得到它編譯的情況下。

我曾試圖遵循一些指南(即使在各種組合):

現在我覺得卡住,幾個人似乎已經成功地建立了用於ARMv5節點,但也許這是不同版本的節點和V8的不同。

我該如何繼續嘗試?我會高興地測試任何建議。

回答

1

使用節點的穩定版本0.4.10在Sheevaplug上通過以下步驟解決了它。

$ sudo apt-get update 
$ sudo apt-get install scons make libssl 

(可能需要幾包)

$ cd /home/user/source 
$ wget http://nodejs.org/dist/node-v0.4.10.tar.gz 
$ tar zxvf node-v0.4.10.tar.gz 
$ cd node-v0.4.10 
$ nano deps/v8/SConstruct 

變化〜在打開的文件DEPS線139/V8/SConstruct

 'CCFLAGS':  ['$DIALECTFLAGS', '$WARNINGFLAGS'], 

 'CCFLAGS':  ['$DIALECTFLAGS', '$WARNINGFLAGS', '-march=armv5t'], 

保存文件並退出nano,按Ctrl + o輸入CTRL + X

$ ./configure 

檢查抱怨缺少的軟件包

$ make 

需要一段時間〜在我的SheevaPlug 40分鐘,之後的構建測試運行節點與

$ ./node 

如果節點外殼開始OK,退出外殼並運行

$ sudo make install 
+0

我發現這是有用的,但我需要V8交叉編譯先正確 - 它不是。這裏是一個博客條目,僅供交叉編譯V8 for arm時參考。 http://www.wigwag.com/devblog/?p=172 – EdH

1

我的第6版在我的pogoplug上工作。我想通過刪除編譯器標誌是最好的選擇,因爲如果你構建目標gcc應該知道該怎麼做。我現在只是入侵它,因爲正確的解決方案是讓構建系統設置選項'armeabi:soft'而不是'armeabi:softfp',然後設置gcc標誌。

但如果你只是希望它的工作在SConstruct文件做到這一點(以及添加-march =用於ARMv5」在以前的帖子)

這是我在大約157行註釋掉:

'armeabi:softfp' : { 
    'CPPDEFINES' : ['USE_EABI_HARDFLOAT=0'], 
# 'vfp3:on': { 
#  'CPPDEFINES' : ['CAN_USE_VFP_INSTRUCTIONS'] 
# }, 
# 'simulator:none': { 
#  'CCFLAGS':  ['-mfloat-abi=soft'], 
# } 
    }, 

我做了一些測試,它適用於我。