2014-04-16 3 views
-1

저는 Linux 컴퓨터에서 C로 hello world 프로그램을 작성했습니다. 컴파일은 툴체인 arm-none-eabi-gcc (나중에 크로스 컴파일에 사용)을 사용하여 완료되었습니다. 하지만 더 발전하기 전에 같은 시스템에서이 애플리케이션의 실행을 테스트하고 싶습니다. 실행 파일은 컴파일 후 생성 될 때 그러나, 나는 ./hello를 사용하여 실행하려고하지만arm-none-eabi-gcc를 사용하여 컴파일 된 파일을 실행하는 방법

bash: ./hello: cannot execute binary file 

가 어떻게 다음 실행 않는 오류에게 aformentioned 툴체인으로 컴파일 된 실행 파일을받을 수?

+1

arm-none-eabi-gcc에서 생성 된 .bin 또는 .hex 파일은 임베디드 마이크로 컨트롤러에서만 사용되는 것으로 알고 있습니다. ARM 기반 설계와 같은 임베디드 시스템 만 이해한다는 지침이 있습니다. Linux 용 실행 파일을 만들고 싶다면 gcc를 사용하여 프로그램을 컴파일 할 수 있습니다 ("man gcc"참조). –

+2

바이너리를 설치할 플랫폼은 무엇입니까? 테스트하는 유일한 방법은 에뮬레이터를 통해 실행하는 것입니다. 필요한 경우 Android에서 에뮬레이터가있었습니다. – mathk

+0

ATMEL AT91SAM9G20 프로세서가있는 FOX G20 V 보드에서 이진 코드를 실행하려고합니다. 저는 이미 보드에 응용 프로그램을로드 할 수있게 해주는 u-boot를 작성하고 컴파일했습니다. 그러나 지금까지는 그렇게 할 수 없었습니다. 그리고 에뮬레이터를 통해 어떻게 실행합니까? – Adam

답변

3

arm-none-eabi-gcc 컴파일러를 실행하는 시스템에 실행 파일을 복사하고 실행하십시오. 또는 에뮬레이터에서.

+0

답변 해 주셔서 감사합니다. 'arm-none-eabi-gcc' 컴파일러를 실행하는 동일한 폴더에 실행 파일을 복사했지만 여전히 동일한 오류가 발생합니다. 실행 파일을 실행하려고하는 것은 "./"이 아니라는 것입니다. 맞습니까? – Adam

+0

질문에 따라 arm-none-eabi-gcc 컴파일러를 실행하는 시스템이 실제로 코드를 크로스 컴파일하므로이 시스템에서 실행하면 작동하지 않는다고 생각합니다. – Khaelid

+0

@Khaelid 예, 크로스 컴파일을위한 것입니다. 그래서 그것이 실행되지 않습니다. 그러나 타겟 보드에서 응용 프로그램을 실행하는 데에도 어려움이 있습니다. – Adam