aocus 发表于 2006-11-7 10:08:02

运行自己的程序出错!不解

自己编辑hello.c程序
#include <stdio.h>
int main(void)
{
    int i;
    for(i = 0; i < 6; i++){
      printf("i = %d",i);
      printf("Hello, embedded linux!\n");
    }
    return 0;
}
执行命令:arm-elf-gcc -Wl,-elf2flt -o hello hello.c

得到名为hello的执行文件,还有另外一个hello.gdb文件
把hello文件copy到romfs/文件夹下的bin/子文件夹中
执行命令
genromfs -f romfs.img -d romfs
产生的romfs.img 文件便可以用来启动uclinux
在skyeye.conf 中指定romfs.img的位置

然后可在skyeye目录下执行
#./skyeye -elinux-2.4.x/linux
进入uclinux系统后
执行hello命令
结果为
Sash command shell (version 1.1.1)
/> hello
/>Bad Command or File Name
分析,步骤没错,但是无法识别hello,测试发现,uClinux-dist/romfs/bin下有20个文件,其中包括添加的hello。

再次运行uClinux,
Sash command shell (version 1.1.1)
/> ls
/> 只有19个文件,没有hello,问题出现,但不解?

halun2000 发表于 2006-11-7 14:25:21

碰到过,但是可能和你的情况不太一样,我是移植虚拟机,便以出来的可执行程序也是格式不对,后来发现是由于使用了-fPIC的变异参数引起的,去掉就没事了。你用file xx看看test 和可以执行的程序有什么区别。贴上来看看
页: [1]
查看完整版本: 运行自己的程序出错!不解