1

我正在尝试编译一个简单的 hello world 应用程序以在 uCLinux (2.4) 上运行,该应用程序在带有飞思卡尔 Coldfire (MCF5280C) 处理器的板上运行……我不太确定在这里做什么。

我知道我需要使用来自飞思卡尔的正确版本/工具进行编译以针对此硬件,因此我下载并安装了 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

这根本不起作用..所以它显然比这更复杂。输出几乎看起来像是要我在使用它之前构建工具链?以前有人做过吗?不知道我需要做什么,或者我是否只需要一些标志。

4

2 回答 2

1

您也可以尝试查看是否有调用命令m68k-elf-gcc或类似的东西。这是交叉编译器的常用命名。

至于您的问题,听起来您的编译器设置有问题。crt0.o 是包含 C 运行时设置代码的目标文件。如果设置正确,链接器(实际上是什么给出了错误)应该知道这个文件在哪里。

安装后,您应该make install作为最后一步运行,而自该步骤以来没有修改任何内容make。配置步骤将根据应该安装的路径设置某些变量等。

于 2012-10-09T19:43:36.053 回答
0

您从哪里获得飞思卡尔工具链?我查看了他们的网站,似乎只有第三方提供了 C++ 交叉编译器。在我从 NetBurner 获得的工具链中(用于他们的硬件),crt0.o 文件存在于 gcc-m68k\m68k-elf\lib 目录下。

于 2012-10-16T22:55:27.497 回答