Supportnet Computer
Planet of Tech

Supportnet / Forum / Anwendungen(Java,C++...)

math.h unter Linux ????





Frage

Hi Leute, wieso kann ich keine Standardfunktionen aufrufen, die in der "math.h - Datei" definiert sind? (z. B. double sqrt(double), double cos(double) etc...) Ich bekomme folgende Fehlermeldung: /tmp/cc97uUm9.o: In function `poko': /tmp/cc97uUm9.o(.text+0xdf): undefined reference to `sqrt' /tmp/cc97uUm9.o(.text+0xf8): undefined reference to `atan2' collect2: ld returned 1 exit status Dieselbe Datei kann ich unter GNU-C für Windows problemlos übersetzen! Nur unter Linux nicht? Bitte um Hilfe. Vielen Dank schonmal im Vorraus!! Grüße Ciao homer

Antwort 1 von semi

Sieht so aus als ob es eine Fehlermeldung vom Linker wäre. Irgendeine Bibliothek wird beim Linken nicht miteinbezogen.
Wie compilierst Du das ganze Zeug?


Antwort 2 von homer :-)

Hi Semi,

ich übersetze es ganz normal mit dem freien Gnu-C-Compiler.

"gcc *.c"

habe schon viel übersetzt. Auch komplette Linux-Kernels und diverse Programme. Klappt alles.

Auch unter der Windows-Version des gcc-Compilers funktioniert es. Nur unter Linux nicht. Habe es schon bei Debian und bei RedHat 7.3 ausprobiert. Bei beide Systemen hargenau die gleiche Fehlermeldung.

Auch hier wieder danke für deine Antwort!

Grüße homer

Antwort 3 von semi

So kann es auch nicht funktionieren.
(Ich glaube nicht, dass es unter Windows so ging)

Versuche folgendes:
(Beispielcode)

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

int main(int argc, char **argv) {
  float i = 36.f;
  float j = sqrt(i);
  printf("sqrt(%.2f) = %.2f\n", i, j);
  return 0;
}

Übersetzen mit:

gcc sqrt.c -o sqrt -lm
oder
gcc -O3 sqrt.c -o sqrt -lm -s

Gruss,
Michael

Antwort 4 von homer :-)

Wieso kann es so nicht funktionieren? Was ist an der "math.h" so speziell?
Mit GCC für Windows funktionierte es wircklich. Jetzt unter Linux auch mit der Option -lm. Wieso -lm?

Aber egal, mit g++ *.c funktioniert es auch ohne Schalter.


Vielen Dank,

Ciao homer

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: