And with optimization, the compiler would discover that it can compute
the sqrt at compile time and put the answer into the object code, which
is why you don't need the sqrt routine linked in with optimization
enabled.  BTW, if this is a "time killer" program, the optimized
version would run SIGNIFICANTLY faster.

Venkatesh Krishnamurthi wrote:
> 
> Hi,
> 
>   The "sqrt" function is in libm, you should use: gcc PROGRAM_NAME -lm
> 
> Venkatesh
> 
> >
> > Hi, all
> >
> > I had a function and cc it in redhat 7.2,
> > but if I use
> > $gcc PROGRAM_NAME,
> > there will be error :
> >
> > /tmp/ccAXzZTF.o: In function `main':
> > /tmp/ccAXzZTF.o(.text+0x32): undefined reference to `sqrt'
> > collect2: ld returned 1 exit status
> >
> > but if I use -O or -O2 to gcc, it works well !!
> > I do not know why, the following is source code
> >
> >
> > #include <stdio.h>
> > #include <math.h>
> >
> > int main(void)
> > {
> >
> > double pi = M_PI;
> > double pisqrt;
> > long i;
> >
> > for (i = 0; i < 10000000; ++i) {
> > pisqrt = sqrt(pi);
> > }
> > return 0;
> > }
> >
> >
> >
> > _______________________________________________
> > Redhat-devel-list mailing list
> > [EMAIL PROTECTED]
> > https://listman.redhat.com/mailman/listinfo/redhat-devel-list
> >
> 
> _______________________________________________
> Redhat-devel-list mailing list
> [EMAIL PROTECTED]
> https://listman.redhat.com/mailman/listinfo/redhat-devel-list



_______________________________________________
Redhat-devel-list mailing list
[EMAIL PROTECTED]
https://listman.redhat.com/mailman/listinfo/redhat-devel-list

Reply via email to