something about <math.h>


 
Thread Tools Search this Thread
Top Forums Programming something about <math.h>
# 1  
Old 03-09-2006
something about <math.h>

Hi, I got an easy problem for you but really difficult for me 'cause I am pretty new to this field
I got header file <math.h> included in my .c file , then I write the code as below:

k = sqrt(i); /* both variables k and i are int */

then I cc temp.c
it says like this
undefined symbol first referenced in file
sqrt temp.o

it really makes me confused, so any one would like to give me a hand?
thanks a lot in avance!
# 2  
Old 03-09-2006
Try:
cc -lm temp.c

The sqrt routine is in the math library. So you need to search the math library to build the executable program.
# 3  
Old 03-09-2006
thanks for your suggestion,and I tried as you told me,but it remained the same error,,,
i386ld fatal: Symbol referencing errors. no output written to a.out

would you offer me more details ,thank you.
# 4  
Old 03-09-2006
Tools fix the type and the compilation environment

### first : the sqrt function requires a "double" parameter , and returns a double .

just like this :

/* ---- snip ---- */

double x = 2.0 ;
double y ;

y = sqrt (x) ;

/* ---- snip ---- */

### second : make sure the math library will be found :

$ find / -name libm.a

(it normally will be found in /lib or /usr/lib )

$ echo $LIBPATH or $LD_LIBRARY_PATH (depending on your o.s.) and
make sure the parent dir that contains libm.a is included in it .

### and finally , compile you program as follows :

$ cc -o yourprog yourprog.c -lm

(put the '-lm' at the end of the line)

good luck , and success !
# 5  
Old 03-10-2006
thank you all.

it works by typing "cc temp.c -lm"

-lm should be added at the end of the line.

and I think the type sqrt(1) returns can be changed into int forcefully, so it isn't the right problem lying there.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Math

i have file (my_file.txt) that looks like this: 000000000000010000 000000000000010000 000000000000005000 000000000000005000 000000000000005000 000000000000005000 000000000000005000 000000000000005000 000000000000005000 000000000000005000 all said and one, it should look... (11 Replies)
Discussion started by: lawsongeek
11 Replies

2. UNIX for Dummies Questions & Answers

Linux Math Help

I am struggling with scripting this challenge a friend and I have. You have file1 and its contents is a single number you have file 2 and its contents are a different number you want to add file1 to file2 and have the output be put into file3 (3 Replies)
Discussion started by: minkyboodle
3 Replies

3. Programming

Math function with C

I have int miles, yards; float kilometers; float kilometers2; miles = 26; yards = 385; kilometers = 1.609 * (miles + yards / 1760.0); where int/float remains a float. How ever if I change it to kilometers = 1.609 * (miles + yards / 1760); ... (7 Replies)
Discussion started by: Fingerz
7 Replies

4. Shell Programming and Scripting

Math Tool

Hi all, I am new to PERL scripts, and i have made my first script which i am posting here. This math tool performs all basic arithmatic functions. #!/usr/bin/perl print "\t----------Welcome to Maths Tool-----------\n"; do { print "Enter your choice :"; print... (2 Replies)
Discussion started by: PranavEcstasy
2 Replies

5. Shell Programming and Scripting

Need help with AWK math

I am trying to do some math, so that I can compare the average of six numbers to a variable. Here is what it looks like (note that when I divide really big numbers, it isn't a real number): $ tail -n 6 named.stats | awk -F\, '{print$1}' 1141804 1140566 1139429 1134210 1084682 895045... (3 Replies)
Discussion started by: brianjb
3 Replies

6. Shell Programming and Scripting

math help

$ x=1 $ y=1.5 $ z=$((x*y)) bash: 1.5: syntax error: invalid arithmetic operator (error token is ".5") What's wrong? (2 Replies)
Discussion started by: rockbike
2 Replies

7. UNIX for Dummies Questions & Answers

math in unix

I have 2 variables a=2 b=1 i want to add a and b how do i do this in unix using just the echo command and by assigning it to a different variable like c? (13 Replies)
Discussion started by: khestoi
13 Replies

8. Programming

math.h in makefile

Hey all, How do I link the math library in a gnu make makefile? I have tried using -lm with the CFLAGS varibale - flags like -Wall and -ggdb work, but -lm does not. I am running gcc - 4.1.2 on a linux machine. (2 Replies)
Discussion started by: kermit
2 Replies

9. Programming

some math problems in C

I want to calculate secant method using C language That is a program----> #include<stdio.h> #include<math.h> #include<stdlib.h> main() { double fx(double x); double x0,x1,x2,f0,f1,f2,err; int n,i; printf("\n\n f(x) =x*x*x-5*x-7"); printf("\n\nEnter an interval in" ... (4 Replies)
Discussion started by: cdfd123
4 Replies

10. Programming

math.h not working? o.0

Alright, umm i cant get this to work. im looking at some example and a book i have. when i try to compile my program i get an error message. ld: 0711-317 ERROR: Undefined symbol: .sqrt ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information. I did #include<math.h> after my... (2 Replies)
Discussion started by: primal
2 Replies
Login or Register to Ask a Question