"undefined reference to `sqrt'" ??



  • Hallo, ich habe eine Funktion zur Primberechnung (s.u.),
    jedesmal, wenn ich nach dem Compilieren linken will (OS: Ubuntu),
    bekomme ich folgende Fehlermeldung:

    /tmp/ccrIDujD.o: In function `isPrime':
    prim.c:(.text+0x23e): undefined reference to `sqrt'
    collect2: ld returned 1 exit status
    

    was ist da los? warum berechnet er das sqrt nicht?!?
    danke...

    short isPrime(long p) {
      long s, d;
      s = (long) sqrt(p) + 1;
      if ( p <  2 ) return 0;
      if ( p == 2 ) return 1;
      if ( p % 2 == 0 ) return 0;
      for ( d = 3; d <= s; d+=2 )
        if ( p % d == 0 ) return 0;
      return 1;
    }
    


  • -lm



  • Wie ist denn der Compiler-Aufruf?

    Sicherlich includest Du die <math.h> in Deinem SourceFile. Allerdings braucht der Compiler für die mathematischen Funktionen noch die entsprechende Library, die Du durch ein simples "-lm" am Ende des Compileraufrufes mit einbindest.

    Das könnte dann so ähnlich aussehen: "gcc -o mathe mathe.c -lm"



  • MFK schrieb:

    -lm

    Verausgabe Dich nicht! 😉 :p


Log in to reply