2012-10-09 4 views
1

프리 스케일 ColdFire (MCF5280C) 프로세서가 탑재 된 보드에서 실행되는 uCLinux (2.4)에서 실행되는 간단한 hello world 애플리케이션을 컴파일하려고합니다. 여기서는 어떻게 해야할지 잘 모르겠습니다.Coldfire 툴 체인을위한 프로그램을 어떻게 컴파일하나요?

은 내가이 하드웨어를 대상으로 프리 스케일에서 올바른 버전/도구를 사용하여 컴파일 할 필요가 알고, 그래서 나는 다운로드하여 콜드 파이어 (ColdFire) 툴 체인을 설치하고 내가 가진 하나의 내 목표입니다 것을 확인 :

[email protected]:/usr/local/m68k-elf/bin> ./gcc -v 
Reading specs from /usr/local/lib/gcc-lib/m68k-elf/2.95.3/specs 
gcc version 2.95.3 20010315 (release)(ColdFire patches - 20010318 from http://fiddes.net/coldfire/)(uClinux XIP and shared lib patches from http://www.snapgear.com/) 

.. 전혀 작동하지 않습니다

[email protected]:/home/mike> /usr/local/m68k-elf/bin/gcc test.c 
/usr/local/m68k-elf/bin/ld.real: cannot open crt0.o: No such file or directory 
collect2: ld returned 1 exit status 

그래서 그것은 분명보다 더 복잡하다 : 나는 간단한 gcc "file" 유형 명령을 시도했다. 내가 사용하기 전에 툴 체인을 만들길 원하는지? 누구든지 전에 이것을 한 적이 있습니까? 내가 무엇을 할 필요가 있는지, 아니면 단지 플래그가 필요한지 확실하지 않습니다.

+0

gcc --sysroot =/usr/local/m68k-elf test.c – auselen

+0

그냥 작동하지 않으면 --sysroot 인수를 추가 할 필요가 없기 때문에 잘못 설정되었을 수도 있습니다. 즉, 테스트하는 것이 좋습니다. – CrazyCasta

답변

1

m68k-elf-gcc 또는 그 행에있는 명령이 있는지 확인할 수도 있습니다. 이것은 크로스 컴파일러의 일반적인 이름입니다.

문제에 관해서는 컴파일러 설정에 문제가있는 것처럼 들립니다. crt0.o는 C 런타임 설정 코드가 포함 된 개체 파일입니다. 링커 (실제로 오류를주는 것)는 제대로 설정하면이 파일의 위치를 ​​알아야합니다.

make install을 설치하면 make 단계 이후 아무 것도 수정하지 않고 마지막 단계로 실행해야합니다. 구성 단계에서는 특정 변수 등을 설치 경로로 설정합니다.

+0

그래, 그것도 존재하고, 같은 버전 정보가 덤프되고 같은 문제가 그것을 실행합니다. 따라서 아마도 당신은 뭔가 잘못 설정된 것에 대해 옳을 것입니다. – Mike

+0

@Mike 그래, 네 문제를 해결할 수 있을지 의심스러워. 사용하기가 좀 더 쉽다. (경로를 넣을 필요가 없다.) – CrazyCasta

+0

@ 일반적으로 gcc 컴파일러를 사용하려면 빌드하기 전에 빌드 된 경로에 모든 구성 요소를 설치하거나 라이브러리 (예 : crt0.o)를 찾을 위치를 지정하는 옵션을 제공해야합니다. 'main()'에 대한 호출을 설정하는 초기 엔트리 포인트). 하드웨어/도구 공급 업체로부터 구체적인 정보를 찾을 수 있습니다. – mah

0

어디에서 FreeScale 툴체인을 얻었습니까? 그들의 사이트를 살펴 봤는데 제 3자가 C++ 크로스 컴파일러를 제공 한 것 같았습니다. toolchain에서 NetBurner (하드웨어와 함께 사용)에서 crt0.o 파일이 gcc-m68k \ m68k-elf \ lib 디렉토리 아래에 있습니다.

+0

http://www.uclinux.org/에는 툴 체인의 릴리즈가 있습니다. – Mike