On Sun, Nov 05, 2006 at 06:47:07PM +0300, Peter Volkov (pva) wrote: > Hello. > > Short question: What shall we use to link libraries/programs: gcc or ld? > Why? > > A bit longer story: I have a problem during linking of wepattack on > amd64 systems. Linking stage issues warning: > > $ x86_64-pc-linux-gnu-ld -o wepattack wepattack.o rc4.o wepfilter.o > log.o modes.o misc.o verify.o keygen.o -lpcap -lz -lcrypto > ld: warning: cannot find entry symbol _start; defaulting to > 0000000000400e10 > > And resulted file is not executable. In google I found the most of > tutorials/howtos suggest to link with gcc but some programs still use > LD. From ld man page it's clear that it should link the program but this > is not working. So what is the right way to do that? Why?
Link using gcc unless your program is a very special case. _start is defined in /usr/lib/crt1.o (may be slightly different on amd64), and that as well as other object files typically required by every program will be pulled in by gcc. -- [email protected] mailing list
