about arm-linux-ld
蔡栋
caidong at kedacom.com
Wed Nov 23 12:42:23 UTC 2005
Mike Frysinger,您好!
>> arm-linux-ld: warning: cannot find entry symbol _start; defaulting to 00008558
>
>which means it wont work at all
>
>> beacuse of I don't use crt0.o ,so the system output above message.but I can't find crt0.o in /opt/arm/lib/gcc/arm-linux-uclibc/3.4.3 directory.
>
>use crt1.o then
yes,I know it's not busybox problem,and I think it's also not cross compile problem.because I use "arm-linux-gcc -O2 -o lock main.c lock_flash.c" to compile these file,it seems to work well!
I'm sorry I write incorrect link command in previous letter, the link command is :
"arm-linux-ld --start-group -L /opt/arm/lib/gcc/arm-linux-uclibc/3.4.3/ -I /opt/arm/lib/gcc/arm-linux-uclibc/3.4.3/include lock_flash.o main.o -lc --end-group -o lock"
due to not use "crt0.o" ,so the system output "arm-linux-ld: warning: cannot find entry symbol _start; defaulting to 00008558" message
becase of I find crt0.o in /opt/arm/lib/crt0.o,so I try to use
"arm-linux-ld --start-group -L /opt/arm/lib/gcc/arm-linux-uclibc/3.4.3/ -I /opt/arm/lib/gcc/arm-linux-uclibc/3.4.3/include lock_flash.o main.o -lc /opt/arm/lib/crt0.o --end-group -o lock"
then system didn't output any message,but the it't also can't working on busybox!
then I try to use -lgcc instead of -lc option in arm-linux-ld ,ie:
"arm-linux-ld --start-group -L /opt/arm/lib/gcc/arm-linux-uclibc/3.4.3/ -I /opt/arm/lib/gcc/arm-linux-uclibc/3.4.3/include lock_flash.o main.o -lgcc /opt/arm/lib/crt0.o --end-group -o lock"
then system output:
/opt/arm/lib/crt0.o: In function `_start':
crt0.S:(.text+0x14): undefined reference to `__uClibc_main'
crt0.S:(.text+0x18): undefined reference to `abort'
lock_flash.o: In function `read_proc':
lock_flash.c:(.text+0x30): undefined reference to `fopen'
lock_flash.c:(.text+0x4c): undefined reference to `printf'
lock_flash.c:(.text+0xbc): undefined reference to `__fgetc_unlocked'
lock_flash.c:(.text+0xcc): undefined reference to `fgetc'
lock_flash.c:(.text+0x150): undefined reference to `__fgetc_unlocked'
lock_flash.c:(.text+0x160): undefined reference to `fgetc'
lock_flash.c:(.text+0x184): undefined reference to `fseek'
lock_flash.c:(.text+0x1b0): undefined reference to `fscanf'
lock_flash.c:(.text+0x1e4): undefined reference to `printf'
lock_flash.c:(.text+0x1f0): undefined reference to `strlen'
lock_flash.c:(.text+0x208): undefined reference to `strncmp'
lock_flash.o: In function `lock_partition':
lock_flash.c:(.text+0x2f4): undefined reference to `malloc'
lock_flash.c:(.text+0x320): undefined reference to `sprintf'
lock_flash.c:(.text+0x330): undefined reference to `open'
lock_flash.c:(.text+0x350): undefined reference to `printf'
lock_flash.c:(.text+0x398): undefined reference to `ioctl'
lock_flash.c:(.text+0x3ac): undefined reference to `printf'
lock_flash.c:(.text+0x3b8): undefined reference to `close'
lock_flash.c:(.text+0x3cc): undefined reference to `close'
lock_flash.c:(.text+0x3d4): undefined reference to `free'
lock_flash.o: In function `lock_flash':
lock_flash.c:(.text+0x440): undefined reference to `printf'
lock_flash.c:(.text+0x464): undefined reference to `printf'
lock_flash.c:(.text+0x480): undefined reference to `printf'
lock_flash.o: In function `handle_string':
lock_flash.c:(.text+0x4cc): undefined reference to `strtol'
main.o: In function `main':
main.c:(.text+0x3c): undefined reference to `printf'
obviously system can't find any symbol in library ,why? Could you tell me the difference between "lc" and "lgcc"?
I just want to know how to use arm-linux-ld to link several object file into one executable obj.Could you give me some advise?
Thanks!!
======= 2005-11-23 18:57:28 您在来信中写道:=======
>On Wed, Nov 23, 2005 at 06:35:49PM +0800, ???? wrote:
>> busybox????????
>
>no, this is not a busybox issue, you should ask it on one of the arm
>mailing lists:
>http://www.arm.linux.org.uk/mailinglists/
>
>> arm-linux-gcc -o2 -c -o main.o main.c
>
>-o2 is not valid, but -O2 is
>
>> arm-linux-ld: warning: cannot find entry symbol _start; defaulting to 00008558
>
>which means it wont work at all
>
>> beacuse of I don't use crt0.o ,so the system output above message.but I can't find crt0.o in /opt/arm/lib/gcc/arm-linux-uclibc/3.4.3 directory.
>
>use crt1.o then
>-mike
>_______________________________________________
>busybox mailing list
>busybox at busybox.net
>http://busybox.net/cgi-bin/mailman/listinfo/busybox
= = = = = = = = = = = = = = = = = = = =
致
礼!
蔡栋
caidong at kedacom.com
2005-11-23
More information about the busybox
mailing list