※C言語初心者の為、内容に不備がある可能性があります。
C言語の練習続き
forを使ってコサインカーブを出してみる。
普通にコンパイルしたらエラーが出た。。。
何だこれ?
とりあえずググる。
gcc のエラーメッセージの読み方
ここに書いてあった。
$ gcc cos01.c -lm
コンパイルできた。
んで実行結果。
コンパイルエラーに慣れない。
C言語の練習続き
forを使ってコサインカーブを出してみる。
/* cos01.c*/ #include <stdio.h> #include <math.h> int main() { int i, j, genbun = 5; double rad, cosvalue, pai = 3.14; printf( "角度\tcos値\tイメージ\n" ); for( i = 0; i < 60; i++ ) { printf( "-" ); } for( i = 90; i >= 0; i -= genbun ) { rad = (pai * i) / 180; cosvalue = cos(rad); printf( "\n%2d\t%f ", i, cosvalue ); for( j = 1; j <= (int)(cosvalue * 40); j++ ) { printf( "*" ); } } printf( "\n" ); return 0; }
普通にコンパイルしたらエラーが出た。。。
$ gcc cos01.c /tmp/ccwmJ23Q.o: In function `main': cos01.c:(.text+0x70): undefined reference to `cos' collect2: ld はステータス 1 で終了しました
何だこれ?
とりあえずググる。
gcc のエラーメッセージの読み方
ここに書いてあった。
だそうです。。
数学関数を使う場合には、コンパイルするときに -lm という
オプションを付ける必要があります。
$ gcc cos01.c -lm
コンパイルできた。
んで実行結果。
角度 cos値 イメージ ------------------------------------------------------------ 90 0.000796 85 0.087905 *** 80 0.174345 ****** 75 0.259460 ********** 70 0.342602 ************* 65 0.423139 **************** 60 0.500460 ******************** 55 0.573975 ********************** 50 0.643126 ************************* 45 0.707388 **************************** 40 0.766272 ****************************** 35 0.819330 ******************************** 30 0.866158 ********************************** 25 0.906401 ************************************ 20 0.939753 ************************************* 15 0.965960 ************************************** 10 0.984823 *************************************** 5 0.996199 *************************************** 0 1.000000 ****************************************
コンパイルエラーに慣れない。