static link errors with libm

Jaap Eldering eldering@phys.uu.nl
Sat Aug 14 23:50:00 GMT 2004


On Sat, Aug 14, 2004 at 02:04:48PM -0400, Ishwar Rattan wrote:
> Try -lm as the last command-line argument to gcc
> -ishwar

Ok, this works. Thanks!

But why does it have to be last? I'd suppose only the order with respect
to -static might matter.

Jaap


> On Sat, 14 Aug 2004, Jaap Eldering wrote:
> 
> > Hello,
> >
> > I'm having problems linking statically with the math library.
> >
> > When compiling the following program:
> >
> > #include <math.h>
> >
> > int main()
> > {
> >         sin(0);
> >         return 0;
> > }
> >
> > with 'gcc -static -lm -o progname progname.c', I get errors:
> >
> > /tmp/ccZSyXXG.o: In function `main':
> > /tmp/ccZSyXXG.o(.text+0xe): undefined reference to `sin'
> > collect2: ld returned 1 exit status
> >
> > while without the -static option, all is fine. More strangly, if I
> > compile with 'g++ -x c -static -lm -o progname progname.c' then it
> > compiles fine too.
> >
> > I have this problem on Debian stable with gcc 2.95.4 and 3.0.4 and on
> > SunOS with gcc 3.2.2, but not on Compaq Tru64 UNIX V5.1A with gcc 3.4.1
> >
> > Thanks for any help,
> > Jaap Eldering
> >



More information about the Gcc-help mailing list