Hirdetés

Új hozzászólás Aktív témák

  • Jester01
    veterán

    Egy kis segítséget szeretnék kérni.
    Még nemrég kezdtem programozni tanulni ráadásul egyedül.
    A problémám az lenne, hogy ezt a kódott nem fordítja le a compiler, csak akkor, ha az atan-on belül szám van és nem egy előre definiált változó. Nem értem miért, kérlek segítsetek:

    #include <stdio.h> /* printf */
    #include <math.h> /* atan */

    #define PI 3.14159265

    int main ()
    {
    double param, result;
    param = 1.0;
    result = atan (param) * 180 / PI;
    printf ("The arc tangent of %f is %f degrees\n", param, result );
    return 0;
    }

    Az akkor lehet, ha elfelejtetted hozzálinkelni a math könyvtárat. Minden bizonnyal valamit panaszkodott is a fordító, legközelebb azt is írd meg nekünk, valamint keress rá az interneten is. Jelen esetben valószínűleg undefined reference hibát kaptál ami azt jelenti, a linker nem talált valami hivatkozott szimbólumot. Ilyenkor ha nem elírás történt, akkor hiányzó könyvtárak/modulok felé kell keresgélni. Konstansra azért fordulhat, mert azt szerencsés esetben a fordító kiszámolja így nincs szükség a tényleges atan implementációra.

    Végül pedig a gyógymódról. Nem írtad milyen környezetet használsz, parancssoros gcc esetén -lm kapcsolót kell alkalmazni. A -l segítségével lehet függvénykönyvtárakat hozzáadni a beszédes m pedig a matek könyvtár neve. IDE környezetben meg kell keresni hol lehet további könyvtárakat (library) beállítani és ott fel kell venni a matek könyvtárat.

Új hozzászólás Aktív témák