pow function working unexpectedly

Jonathan Herriott herriojr at gmail.com
Tue Apr 11 22:54:20 UTC 2006


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


More information about the freebsd-questions mailing list