

コメントアウトした文のように、直接的に数値を代入すると問題ありませんが、変数をいれるとコンパイルエラーが出てしまいます。  
どうしたらいいでしょうか。

**実行環境:**  
Ubuntu  
gcc 9.3.0

**コンパイル結果:**

[code]

    $ gcc sqrtyou.c 
    /usr/bin/ld: /tmp/cc0MDw2q.o: in function `main':
    sqrtyou.c:(.text+0x23): undefined reference to `sqrt'
    collect2: error: ld returned 1 exit status
    
[/code]

**ソースコード:**

sqrtyou.c

[code]

    #include <stdio.h>
    #include <math.h>
    
    int main()
    {
        double first=2.0;
        double second;
    
        second=sqrt(first);
      //second=sqrt(2.0);
    
        printf("%f\n",second);
    }
    
[/code]


CC BY-SA 4.0
2021-01-02T00:56:58.057
73016
2021-01-02T11:46:33.980
2021-01-02T11:46:33.980
3060
40961
question
c gcc
sqrt() の引数に変数をいれるとコンパイルエラーとなる。undefined reference。どうしたらいいでしょうか。


コメントも付いていますが、 [sqrt() のマニュアル](https://linuxjm.osdn.jp/html/LDP_man-
pages/man3/sqrt.3.html)にも

> -lm でリンクする。

と説明されています。マニュアルを読むようにしましょう。


CC BY-SA 4.0
2021-01-02T01:33:37.913
73017
2021-01-02T01:33:37.913
4236
73016
answer