Programs which require access to the ISO 9899:1999 math
functions must link the math library using the
-lm
option to the linker.
Example 22.3. Command using math functions
This is a simple program which performs operations on floating point numbers.
#include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <sys/types.h> #include <unistd.h> #include <math.h> int main(int argc, char **argv) { int loop; double test_a; double test; double test_power; double test_sqrt; test_a = 2.01; test = 1.01; for (loop = 0; loop < 10; loop++) { test = test + 0.5; test_power = test_power + pow(test_a, test); test_sqrt = test_sqrt + sqrt(test_power); } printf("Should be 2.01 : %g\n", test_a); printf("Should be 6.01 : %g\n", test); printf("Should be 218.5 : %g\n", test_power); printf("Should be 71.027 : %g\n", test_sqrt); return 0; }
This is may be compiled directly as:
/opt/simtec/able/bin/arm-able-gcc -lm -o floattset floattest.c
The floattest program may now be copied to a location accessible by ABLE (http or tftp server) and executed. The output should be:
>hello Should be 2.01 : 2.01 Should be 6.01 : 6.01 Should be 218.5 : 218.5 Should be 71.027 : 71.027 >