by shigemk2

当面は技術的なことしか書かない

`sqrt' に対する定義されていない参照です

goldenstate.cocolog-nifty.com

#include <stdio.h>
#include <math.h>

int Function (int n) {
    if(n <= 2) {
        return 1;
    } else {
        printf("f: %f\n", floor(sqrt(n)) + 1);
        return (Function (floor(sqrt(n))) + 1);
    }
}

main(void) {
    Function(30000);
}
$ gcc 1-43.c -o 1-43.out

こんな感じで普通にコンパイルしても、表題のようなエラーが出るので、正しくは

$ gcc -lm 1-43.c -o 1-43.out

とのこと。

lmは算術演算用ライブラリをリンクするオプションだそうだ。

gcc