2012-12-06 1 views
3

최근 i686을 기반으로하는 리눅스 컴퓨터에 mips-linux-gnu-gcc 크로스 툴을 설치했습니다. 일부 코드를 컴파일하려고 할 때 오류가 나타납니다. 나는 crosstool를 설치 한 후bash : ./mips-linux-gnu-gcc : 바이너리 파일 오류를 실행할 수 없습니다.

모든 설치 단계는 http://developer.mips.com/tools/compilers/open-source-toolchain-linux/

뒤를이었다,이 같은 간단한 받고 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 비트 호스트를 실행하고 있습니까? 당신이 MIPS GNU/리눅스를 대상으로 32 비트 호스트의 크로스 컴파일러를해야하는 경우

, MIPS GNU/리눅스 대상의 소서리 CodeBench 라이트 컴파일러를 사용하는 것이 좋습니다 :

Sourcery CodeBench Lite for MIPS GNU/Linux

소서리에 대한 링크를 CodeBench 도구 위의 MIPS 페이지에서 제공된 링크에서 한 단계 올라옵니다 :

MIPS Compilers Page

+0

예, 32 비트 호스트를 실행 중이지만 컴파일러가 64 비트 실행 파일임을 어떻게 알 수 있습니까? – junjies

+0

@ElvisShen : 파일 명령은 당신을 말할 것이다 : '$ 파일 mips_linux_toolchain/빈/MIPS-리눅스 GNU-GCC mips_linux_toolchain/빈/MIPS-리눅스 GNU-GCC를 : ELF 64 비트 LSB 실행, - 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 비트 컴퓨터,하지만 난 어떤 메모 또는 해당 페이지에 경고가 표시되지 않았다 위 ch 크로스 도구를 다운로드했습니다. 어쨌든, 나는 지금 Codesourcery MIPS gnu/gcc cross toolchain을 시도하고있다. 그것이 작동하고 귀하의 답변을 주셔서 감사합니다! – junjies