OS X上arm-elf-gcc交叉编译器的问题

时间:2011-11-03 17:35:06

标签: osx-snow-leopard arm cross-compiling

我正在尝试编译我的第一个linux ARM hello world程序,当我将二进制文件复制并运行到我的目标linux板(linuxstamp Atmel arm 9g20)时,我得到“非法指令”

我在OS X上运行arm-elf-gcc-4.6来自macports。我正在使用Eclipse和IDE。看起来构建更多的是一个独立的非OS程序,而不是代码在linux用户空间中运行。有人能指出我正确的方向吗?感谢。

代码:

#include<stdio.h>

int main(){
    printf("hello world\n");
    return 0;
}

构建项目ArmTest的配置发布**

全力以赴 建立目标:ArmTest.elf 调用:ARM Mac OS X GCC C链接器 /opt/local/bin/arm-elf-gcc-4.6 -nostartfiles -Wl,-Map,ArmTest.map -mcpu = arm920 -mthumb -o“ArmTest.elf”./ main.o
/opt/local/lib/gcc/arm-elf/4.6.0/../../../../arm-elf/bin/ld:警告:找不到条目符号_start;默认为0000000000008000 完成建筑目标:ArmTest.elf

调用:ARM Mac OS X GNU创建Flash镜像 / opt / local / bin / arm-elf-objcopy -O binary ArmTest.elf“ArmTest.hex” 完工建筑:ArmTest.hex

调用:ARM Mac OS X GNU创建列表 / opt / local / bin / arm-elf-objdump -h -S ArmTest.elf&gt;“ArmTest.lst” 完工建筑:ArmTest.lst

调用:ARM Mac OS X GNU打印大小 / opt / local / bin / arm-elf-size --format = berkeley ArmTest.elf    文本数据bss dec hex filename    8112 2104 232 10448 28d0 ArmTest.elf 完工建筑:ArmTest.siz

1 个答案:

答案 0 :(得分:0)

  

我在OS X上运行arm-elf-gcc-4.6来自macports [...]   看起来构建更多的是一个独立的非OS程序,而不是代码在linux用户空间中运行。

实际上,这适用于嵌入式ARM设备没有 Linux操作系统。作为ARM的交叉编译器的gcc的Linux变体应该在其名称中的某个地方使用“linux”,例如“arm-linux-gcc”。