Hallo,
ich versuche ein wenig in C unter KDE zu programmieren und habe ´ Hello world´ um eine Primzahlberechnung erweitert (, dabei hat ´ Hello world´ auf Anhieb perfekt funktioniert) :
Der Code schaut dann so aus:
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int ist_primzahl(int zahl)
{
int teiler=2;
// while (teiler*teiler <= zahl)
while (teiler <= sqrt(zahl))
{
if (zahl % teiler == 0)
return(0); /* 'zahl' ist keine Primzahl */
teiler++;
}
return(1); /* 'zahl' ist eine Primzahl */
}
int main(int argc, char *argv[])
{
int zahl;
printf("Hello, world!\nHow are you\n");
for (zahl=1; zahl<=100; zahl++)
if (ist_primzahl(zahl))
printf("%d\n", zahl);
return EXIT_SUCCESS;
}
Mit: gcc Dateiname.c -lm -o Dateiname
lässt sich das Programm fehlerfrei übersetzen und läuft auch.
Unter KDevelopment lässt es sich dann fehlerfrei übersetzen, wenn man die Zeile: while (teiler <= sqrt(zahl)) durch die Zeile:
while (teiler*teiler <= zahl) ersetzt, also keine Mathematik verwendet. Verwendet man jedoch die Wurzelfunktion sqrt, so kommt der Fehler ´ undefined refence to ´ sqrt´ ´ . Also wird das libmath (-lm) nicht gefunden, glaube ich zumindest.
Eine Suche hat ergeben, daß math.h steht in usr/include/math.h/.
Wie kann ich KDevelop erklären, daß das Library eingebunden werden soll ?
Oder gibt es einen anderen Grund für den Fehler ?
Ich hoffe Ihr könnt mir helfen und danke schon einmal.
Viele Grüße
flyheli
ich versuche ein wenig in C unter KDE zu programmieren und habe ´ Hello world´ um eine Primzahlberechnung erweitert (, dabei hat ´ Hello world´ auf Anhieb perfekt funktioniert) :
Der Code schaut dann so aus:
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int ist_primzahl(int zahl)
{
int teiler=2;
// while (teiler*teiler <= zahl)
while (teiler <= sqrt(zahl))
{
if (zahl % teiler == 0)
return(0); /* 'zahl' ist keine Primzahl */
teiler++;
}
return(1); /* 'zahl' ist eine Primzahl */
}
int main(int argc, char *argv[])
{
int zahl;
printf("Hello, world!\nHow are you\n");
for (zahl=1; zahl<=100; zahl++)
if (ist_primzahl(zahl))
printf("%d\n", zahl);
return EXIT_SUCCESS;
}
Mit: gcc Dateiname.c -lm -o Dateiname
lässt sich das Programm fehlerfrei übersetzen und läuft auch.
Unter KDevelopment lässt es sich dann fehlerfrei übersetzen, wenn man die Zeile: while (teiler <= sqrt(zahl)) durch die Zeile:
while (teiler*teiler <= zahl) ersetzt, also keine Mathematik verwendet. Verwendet man jedoch die Wurzelfunktion sqrt, so kommt der Fehler ´ undefined refence to ´ sqrt´ ´ . Also wird das libmath (-lm) nicht gefunden, glaube ich zumindest.
Eine Suche hat ergeben, daß math.h steht in usr/include/math.h/.
Wie kann ich KDevelop erklären, daß das Library eingebunden werden soll ?
Oder gibt es einen anderen Grund für den Fehler ?
Ich hoffe Ihr könnt mir helfen und danke schon einmal.
Viele Grüße
flyheli