That is because mathematics libraries are not standardly (:P yuk! )
linked to programs.
add this to your gcc line:
-lm
that tells gcc to tell ld to link your program with some library file
named libm.so or libm.a (depending if it is shared or statically
linked...
On Tue, 2003-07-29 at 22:01, Buz Davis wrote:
> Hi,
>
> I have encountered a problem that is undoubtedly a reflection
> of my ignorance of Linux. In attempting to compile the following
> simple C program:
>
> #include <stdio.h>
> #include <math.h>
> #include <stdlib.h>
> #include <unistd.h>
>
> int main (int argc, char ** argv)
> {
> double x=102.3;
>
> printf("square root of %f is %f\n",x,sqrt(x));
> return(1);
>
> }
>
> with the following statement:
>
>
> gcc -Wall -D_GNU_SOURCE testsqrt.c -o testsqrt.o
>
>
> I get these messages:
>
> /tmp/ccLhrAjI.o(.text+0x2b): In function `main':
> : undefined reference to `sqrt'
> collect2: ld returned 1 exit status
>
> According to the man page math.h is the correct header.
> Do I need to explicitly include a statement to the linker
> for the math library ? If so, which is the appropriate
> lib ? I have looked at libm.a (with ar -t) and don't find
> a sqrt.o in it (though there are several modules with sqrt
> within the name).
>
> I am running a workstation install of RH9 - essentially
> right out of the box. After I first encountered this message
> I did run up2date for the 3 RPMs dealing with glibc, but that
> didn't change things. Otherwise everything is as it came off
> the install CDs.
>
> Any help would be appreciated.
>
> Thanks,
>
> Buz Davis
>
> _________________________________________________________________
> Add photos to your messages with MSN 8. Get 2 months FREE*.
> http://join.msn.com/?page=features/featuredemail
>
--
redhat-list mailing list
unsubscribe mailto:[EMAIL PROTECTED]
https://www.redhat.com/mailman/listinfo/redhat-list