linking problem with ld !
I'm working on my diploma work (subject : Efficiency of the GNU tool in a professional project !!!). I'm exploring the binutils' tools, gcc, others...
But I have a problem : I'd like to link a program with ld instead of gcc. Here are the progs (examples !) :
int func_a ();
int func_a ()
int func_b ();
int func_b ()
return 10 * 10;
main(int argc, char* argv)
int a = func_a();
int b = func_b();
char* bc = &c;
printf("a - %d; b - %d;\n", a, b);
If I do a normal compilation with gcc, by
gcc -c a.c b.c ; gcc -o prog a.o b.o main2.c
it produces an execuable, which runs perfectly well (ok, it's a stupid prog !!!)
Now I'd like to link everything with ld :
gcc -c *.c
ld -L./ a.o b.o main2.o -o prog -lc
ld gives a warning :
ld: warning: cannot find entry symbol _start; defaulting to 08048190
Nevertheless, an executable has been produced, but if I execute it :
bash: ./prog: No such file or directory
I've searched the web for an explanation, but I didn't find anything interesting ! Could anyone help me or give me an address where I could find a way of doing this linking ?
Thanks in advance !!!
Last edited by gluon; 05-18-2002 at 11:22 AM.