我正在尝试编译一个简单的hello world应用程序,以便在uCLinux (2.4)上运行,它运行在带有Freescale Coldfire (MCF5280C) processor...and的电路板上。我不太确定在这里要做什么。
我知道我需要用Freescale的正确版本/工具来编译这个硬件,所以我下载并安装了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这根本不起作用..所以这显然比这复杂得多。输出看起来像是想让我在使用之前构建工具链??以前有人这么做过吗?不知道我需要做什么,或者我只是需要一些旗帜。
发布于 2012-10-10 03:43:36
您还可以尝试查看是否有一个名为m68k-elf-gcc的命令或类似的命令。这是交叉编译器的常用名称。
至于你的问题,听起来像是你的编译器设置出了问题。crt0.o是包含C运行时设置代码的对象文件。如果设置正确,链接器(实际产生错误的部分)应该知道这个文件的位置。
当您安装时,您应该已经运行了make install作为最后一步,并且在make步骤之后没有修改任何东西。配置步骤将根据应该安装的路径来设置某些变量。
发布于 2012-10-17 06:55:27
你从哪里得到FreeScale工具链的?我看了看他们的网站,似乎只有第三方提供了C++交叉编译器。在我从NetBurner得到的工具链中(用于他们的硬件),crt0.o文件存在于gcc-m68k\m68k-elf\lib目录下。
https://stackoverflow.com/questions/12807226
复制相似问题