undefined reference to ‘scnaf’

Hab mich die letzte 3/4 Stunde mal mit dem ersten Projekt aus dem Kurs “Einführung in die Programmierung” beschäftigt. Das ganze gestaltet sich bisher etwas problematisch und so ganz dahinter gekommen an was das liegt bin ich auch noch nicht.
Hier mal der Quelltext soweit:

#include
#include
#include

void main()
{
float a,b,c,x1,x2,p,q,rad;
clrscr();
printf("Lösung der Gleichung a*x²+b*x+c=0\n\n");
printf("Bitte Parameter eingeben\n");
printf("a: "); scanf("%f",&a);
printf("b: "); scanf("%f",&b);
printf("c: "); scnaf("%f",&c);
p=b/a; q=c/a;
rad=p*p/4-q;
if (rad>=9) {
x1=-p/2*sqrt(rad);
x2=p/2*sqrt(rad);
printf("x1=&8.2f\nx2=%8.2f\n",x1,x2);
}
else {
printf("Komplexe Wurzeln\n");
}
getch();n
}

Kompiliert man das Ganze, kommt eine ganze Reihe von Fehlermeldungen. Das fängt damit an, dass die Standardbibliothek conio.h nicht gefunden wird. Nach etwas googeln bin ich jetzt aber drauf gekommen, dass es diese Bibliothek unter Linux gar nicht gibt. Einen Ersatz dafür muss ich mir erstmal noch irgendwie raussuchen.
Außerdem gabs noch folgende Fehlermeldungen:
Projekt1.c: In Funktion »main«:
Projekt1.c:11: Warnung: Rückgabetyp von »main« ist nicht »int«
/tmp/ccqN65W0.o: In function `main’:
Projekt1.c:(.text+0x12): undefined reference to `clrscr’
Projekt1.c:(.text+0x87): undefined reference to `scnaf’
Projekt1.c:(.text+0xf8): undefined reference to `sqrt’
Projekt1.c:(.text+0x11d): undefined reference to `sqrt’

Damit, dass die Funktion clrscr() nicht funktioniert, kann ich leben, da die ja nur den Bildschirm löschen soll. Ansonsten befürchte ich mal fast, dass die Funktionen unter Linux einfach irgendwie in anderen Bibliotheken untergebracht sind, als unter Windows. Und ich schätze mal, dass der Prof. unter Windows arbeitet. Werde mich da morgen nochmal drüber setzen. Vielleicht kann man die Header Dateien ja irgendwo nachinstallieren. Mal sehen. Vielleicht hat ja irgendwer der das ließt Ahnung davon.

[Nachtrag: Ha… erstes Problem gelöst. Die math.h wird wohl irgendwie nicht richtig eingebunden (unter Linux), deswegen muss man die Bibliothek libmath dazulinken, indem man das ganze mit gcc -lm Dateiname kompiliert. Hoffe die restlichen Probleme lassen sich auch so schnell lösen.]
[Noch ein Nachtrag: Die Funktionen der conio.h gibts unter Linux in der ncurses.h. Wieso gibts in einem Script, in dem am Anfang davon geschwärmt wird, dass es ja egal ist auf welchem System man das alles macht, dann plötzlich Nicht-Standard-Bibliotheken in den Quelltexten? Doof.]

www.Hypersmash.com

Paste here the URL to shorten:

Powered by cibis.de.

Archiv
Vor einem Jahr
  • 12.12.2016 Keine Beiträge an diesem Tag.


WordPress SEO fine-tune by Meta SEO Pack from Poradnik Webmastera