pow function working unexpectedly

Nicolas Blais nb_root at videotron.ca
Tue Apr 11 23:12:52 UTC 2006


On Tuesday 11 April 2006 19:07, Jonathan Herriott wrote:
> Question then.  Why would it work when I don't use variables if I
> don't include the library?  This question is just out of curiosity.
>
> On 4/11/06, Nicolas Blais <nb_root at videotron.ca> wrote:
> > On Tuesday 11 April 2006 18:54, Jonathan Herriott wrote:
> > > I just want to make sure I'm not being stupid before I send in a bug.
> > > The problem seems to be with gcc when using the pow function in the
> > > math.h library.  Here's code that works:
> > >
> > > #include <stdio.h>
> > > #include <math.h>
> > >
> > > int main()
> > > {
> > >      printf("%f\n", pow(2,3));
> > >      return 0;
> > > }
> > >
> > >
> > > Now, the following will not compile:
> > >
> > > #include <stdio.h>
> > > #include <math.h>
> > >
> > > int main()
> > > {
> > >      int x = 2; // I tried these as doubles too since the pow function
> > > takes doubles
> > >      int y = 3;
> > >
> > >      printf("%f\n", pow(x,y));
> > >      return 0;
> > > }
> > >
> > > I compiled both programs using:
> > > gcc test.c
> > >
> > > The second example gives the following error:
> > >
> > > /var/tmp//ccxtkMwv.o(.text+0x45): In function `main':
> > > : undefined reference to `pow'
> > >
> > > If I comile with g++, I have no issues.  Are these results that I
> > > should have?  If so, why?  If not, I'm going to submit the bug on gcc
> > > (or the linker, but I'm guessing it's the same group).
> > >
> > > Thanks,
> > > Jonathan Herriott
> >
> > gcc -lm test.c works. You forgot to include the math library.
> >

I'm not sure I get your question, but if your not using the math library (from 
variables or functions), then the compiler could care less if it was linked 
with the math library or not.
If your software DOES use a variable or a call from math.h (pow in this case), 
then linking with the math library is a must.

Hope this answers your question, if it doesn't, post a test2.c with what you 
meant and I'll answer best I can.

Nicolas.



-- 
FreeBSD 7.0-CURRENT #1: Sat Apr  8 21:33:25 EDT 2006     
root at clk01a:/usr/obj/usr/src/sys/CLK01A 
PGP? : http://www.clkroot.net/security/nb_root.asc
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-questions/attachments/20060411/555618bb/attachment.pgp


More information about the freebsd-questions mailing list