2012-12-06 269 views
3

我最近在我的linux機器上安裝了一個基於i686的mips-linux-gnu-gcc crosstool。當我想編譯一些代碼時,它顯示了我的錯誤。bash:./mips-linux-gnu-gcc:無法執行二進制文件錯誤

每個安裝步驟之後http://developer.mips.com/tools/compilers/open-source-toolchain-linux/

我安裝的crosstool後,我寫了一個簡單的HelloWorld C文件是這樣的:

#include<stdio.h> 
    int main(void) 
    { 
     printf("Hello World!\n"); 
     return 0; 
    } 

但是當我運行:

/mips-linux-gnu-gcc hello.c -o hello -static 

編譯器只是打印錯誤:

bash: ./mips-linux-gnu-gcc: cannot execute binary file 

我在想,也許我在某些步驟中犯了一些錯誤,但我無法弄清楚。

也許你們中的一些人可以幫助我,我對這個問題感到困惑。

回答

7

從MIPS下載的編譯器是一個64位可執行文件。你正在運行一個32位主機?

如果你需要一個32位主機針對MIPS GNU/Linux的交叉編譯器,可以考慮使用的Sourcery Codebench完成精簡版編譯器爲MIPS GNU/Linux的目標:

Sourcery CodeBench Lite for MIPS GNU/Linux

的鏈接的Sourcery上述Codebench完成工具來自MIPS網頁從您提供的鏈接只是一個級別:

MIPS Compilers Page

+0

是的,我正在運行一個32位主機,但你怎麼知道編譯器是一個64位可執行文件? – junjies

+0

@ElvisShen:文件命令會告訴你: '$ file mips_linux_toolchain/bin/mips-linux-gnu-gcc mips_linux_toolchain/bin/mips-linux-gnu-gcc:ELF 64位LSB可執行文件,x86-64 ,版本1(GNU/Linux),動態鏈接(使用共享庫),用於GNU/Linux 2.6.18,沒有剝離「 –

+0

謝謝!我已經成功運行了交叉工具! – junjies

1

它看起來像mips-linux-gnu-gcc二進制文件與您嘗試運行它的機器的體系結構不匹配。這可能是像32/64位不匹配。

嘗試使用免費的Mentor/Codesourcery MIPS gnu/gcc交叉編譯工具鏈代替。您可以從here下載。

+0

年,我的PC是一個32位的機器,但我沒有看到任何註釋,或在該網頁上的警告在whi我下載了交叉工具。無論如何,我現在正在嘗試Codesourcery MIPS gnu/gcc cross toolchain。希望它能奏效,並感謝您的回答! – junjies

相關問題