[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Wierd compile error with libpthread.a



On Thu, Aug 26, 1999 at 12:13:34AM -0400, Rupert Brooks wrote:
> Hi,
> 
> Please note to CC replies to brooks@nrcan.gc.ca and kirstin@i.am.  I
> don't follow this list all that regularly - thanks
> 
> I am having problems compiling a c program under Debian-Potato.  I have
> traced it this far:  If I compile any C program, and link in the library
> /usr/lib/libpthread.a then an executable will be produced, but when
> executed will simply lock up.
Not quite. From what I can tell, you aren't linking pthread to your
program, you are including it as one of the object files in your
program. So, gcc is shoving the whole libpthread.a in your binary. 
This works better:
cc -funroll-loops -fomit-frame-pointer -pipe -Wall -g main.o
pppoe-discover.o -L. -lpcap -lnet -lpthread -o pppoe

Instead of directly specifying the path of libraries, the best way is to
link to them with '-l'. The linker looks first for a shared (.so)
library (because the -shared option is implied), and then for a static
(.a) library. '-L.' tells the linker to also look for library files in
the current directory.

The resulting executable is dynamically linked with pthread (a standard
libc component..no need to statically link this) and libc, and
statically linked with everything else, per 'ldd pppoe'.


-- 
Stephen Pitts
smpitts@midsouth.rr.com
webmaster - http://www.mschess.org


Reply to: