On 01Apr2011 15:46, les <hlhow...@pacbell.net> wrote:
| > Here is the smallest sample I have been working with to show the current
| > error:
| > 
| > #include <math.h>
[...]
| > main()
| > {
| >     long double temp;
| >     printf ("M_PI=%e\n",M_PI);
| >     printf ("sin 90 = %e\n",sinf(M_PI/2));
| >     temp=M_PI/2.0;
| > // the following line won't compile for temp 
| > // regardless of how temp is declared (float, double, long double)
| > //   printf ("sin 90 = %e\n",sinf(temp));
| > }
| > 
| > 
| > Clearly sinf is recognized, and compiles and runs.  It returns 1.000 as
| > expected for M_PI/2.  But the line that is commented out will not
| > compile.
[...]
| missing command and error message:
|  gcc -ggdb mathck.c
| /tmp/ccTdnf1Z.o: In function `main':
| /home/lesh/Code/C/arb_wav_file/mathck.c:14: undefined reference to
| `sinf'
| collect2: ld returned 1 exit status

As Michael Hennebry <henne...@web.cs.ndsu.nodak.edu> said, you need to
-lm option. To be explicit, since Michael was not, this:

  gcc mathck.c -lm

Including math.h makes various symbolc and function signatures (type and
args) known to the compiler, letting you generate a call to sinf().

However, the math library is not part of the standard C library, so you
need to add it in the link phase so the the code implementing sinf() is
available. Note that it comes after the course files because linking is
an ordered process: the symbol "sinf" from you code needs to be seen and
wanted before the math library is consulted; "-lm" is just shorthand for
the path to the math shared library.

Cheers,
-- 
Cameron Simpson <c...@zip.com.au> DoD#743
http://www.cskk.ezoshosting.com/cs/

network security:       1. Kill all your users.
                        2. Remove all accounts.
                        3. Detach network and dialups.
                        4. Turn off machine.
- David A. Guidry <emp...@nwu.edu>
-- 
users mailing list
users@lists.fedoraproject.org
To unsubscribe or change subscription options:
https://admin.fedoraproject.org/mailman/listinfo/users
Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines

Reply via email to