我正在尝试编译一个简单的hello world应用程序,可以在带有飞思卡尔Coldfire(MCF5280C)处理器的主板上运行的uCLinux(2.4)上运行......我不太清楚这里要做什么
我知道我需要使用飞思卡尔的正确版本/工具进行编译以定位此硬件,因此我下载并安装了Coldfire工具链,并验证我拥有的是我的目标:
mike@linux-4puc:/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/)
我尝试了一个简单的gcc "file"
类型命令:
mike@linux-4puc:/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
这根本不起作用..所以它显然比那更复杂。输出几乎看起来它要我在使用它之前构建工具链?有没有人曾经这样做过?不知道我需要做什么,或者我只需要一些标志。
答案 0 :(得分:1)
您可能还会尝试查看是否有一个名为m68k-elf-gcc
的命令或其他内容。这是交叉编译器的常见命名。
至于你的问题,听起来你的编译器设置有问题。 crt0.o是包含C运行时设置代码的目标文件。如果设置正确,链接器(实际给出错误的内容)应该知道该文件的位置。
安装后,您应该在make install
步骤之后运行make
作为最后一步而不修改任何内容。配置步骤将根据应安装的路径设置某些变量。
答案 1 :(得分:0)
你从哪里获得FreeScale工具链?我看了一下他们的网站,似乎只有第三方提供了C ++交叉编译器。在我从NetBurner(与其硬件一起使用)获得的工具链中,crt0.o文件存在于gcc-m68k \ m68k-elf \ lib目录下。