11

コーディングには Linux、Ubuntu 12.04 (Precise Pangolin)、および Geany を使用しています。私が C で書いているコードは、sqrtf コマンドを使用して float の平方根を見つけるまでは、まったく問題なく機能していました。

エラー: HAC3.c:(.text+0xfd7): `sqrtf' への参照が未定義です。

sqrtf() を使用しているコードの部分:

float syn(float *a, float *b, int dimensions)
{
    float similarity=0;
    float sumup=0;
    float sumdown=0;
    float as=0;
    float bs=0;
    int i;
    for(i=0; i<dimensions; i++)
    {
        sumup = sumup + a[i] * b[i];
        as = as + a[i] * a[i];
        bs = bs + b[i] * b[i];
    }
    sumdown = sqrtf(as) * sqrtf(bs);
    similarity = sumup / sumdown;
    return similarity;
}

math.h を含めましたが、これは問題ではないようです。

これが再び発生しないように Geany を修正する方法はありますか?

4

3 に答える 3

12

Build->Set Build Commandsに移動C commandsし、空のラベルをクリックすると、新しいラベルを指定できます (名前を付けますLink)。それを入力しますgcc -Wall -o "%e" "%f" -lm-ライブラリをアプリ-lmにリンクするように指示します。mathをクリックしOKます。

次にBuild、新しく作成したラベル - をクリックして選択しますLink。これでうまくいくはずです。

于 2013-06-07T01:35:25.173 に答える
9

-lm数学関数を提供するには、とリンクする必要があります。

于 2013-06-07T01:03:13.530 に答える