Forum: Compiler & IDEs sqrt in C klappt nicht, warum


von Karl der Käfer (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute, ich hatte gerade einen stundenlangen Lauf, mein kleines C 
Programm näherte sich der Vollendung. Doch jetzt geht die sqrt Funktion 
nicht. Für dieses Bildschirmfoto muss ich mich entschuldigen, der Laptop 
ist nicht mit dem Internet verbunden. Was mache ich falsch? math.h , 
studio.h und stdlib.h sind im ist/include Ordner. Der Rechner hat Linux 
Mint, der Compiler heißt gcc. Alles was ich vorher gemacht habe hat 
geklappt, ich brauche noch die sqrt Funktion und atan2. Ich bin nochmal 
ganz von Anfang angefangen für die sqrt Funktion.

gcc sqrt.c -o sqrt

Die Fehlermeldung:

/tmp/cccy0www.o: In Funktion 'main':
sqrt.c:(.text+0x23): Nicht definierter Verweis auf 'sqrt'
collect2: error: ld returned 1 exit status

von Karl der Käfer (Gast)


Lesenswert?

Der Ordner heißt usr/include

von Jemand (Gast)


Lesenswert?

-lm zu den Compileroptionen hinzufügen. Mathebibliothek wird sonst nicht 
gelinkt.

von Isolanporzellator (Gast)


Lesenswert?

Ein Displaytext gewinnt durch einen Blitz keinen Kontrast!

von Karl der Käfer (Gast)


Lesenswert?

Jemand schrieb:
> -lm zu den Compileroptionen hinzufügen. Mathebibliothek wird sonst
> nicht gelinkt.

Klappt auch nicht.

Ich tippe: gcc sqrt.c -o -lm sqrt


gcc: error: sqrt: Datei oder Verzeichnis nicht gefunden

von Karl der Käfer (Gast)


Lesenswert?

Mit

gcc sqrt.c -lm -o sqrt


klappt es. Ganz vielen lieben Dank für deine Hilfe!!!

von Lerninstructor (Gast)


Lesenswert?

Karl der Käfer schrieb:
> Jemand schrieb:
>> -lm zu den Compileroptionen hinzufügen. Mathebibliothek wird sonst
>> nicht gelinkt.
>
> Klappt auch nicht.
>
> Ich tippe: gcc sqrt.c -o -lm sqrt
>
> gcc: error: sqrt: Datei oder Verzeichnis nicht gefunden

Du D???, man liest sich die Compileroptionen erst mal durch bevor man 
sie verwendet, insbesonders achtet man darauf, ob nach der Option 
vielleicht noch ne [Pflicht]angabe folgt.

http://www.nsc.ru/cgi-bin/www/unix_help/unix-man?cc+1
1
       -o file
2
        Place  output in file file.  This applies regardless to whatever
3
        sort of output GCC is producing, whether  it  be  an  executable
4
        file,  an object file, an assembler file or preprocessed C code.

von Isolanporzellator (Gast)


Lesenswert?

> Compileroptionen erst mal durch

Wenn es ein Lötkolben gewesen wär, hätte er jetzt Brandblasen!

Und die nicht am Hirn.

von Dirk B. (dirkb2)


Lesenswert?

Noch etwas:

printf kennt kein %lf
Für float und double gilt das einfache %f
Viel Implementierungen dulden es.

(ich hatte gerade einen Fall, wo das zum Absturz führte gcc unter 
Windows)

von Carl D. (jcw2)


Lesenswert?

Dirk B. schrieb:
> Noch etwas:
>
> printf kennt kein %lf
> Für float und double gilt das einfache %f
> Viel Implementierungen dulden es.
>
> (ich hatte gerade einen Fall, wo das zum Absturz führte gcc unter
> Windows)

Das liegt daran, daß float auf double erweitert wird, bevor es als 
Parameter übergeben wird,es sei denn der Funktionsprototyp erwartet 
float. Vergleiche mit ... bei printf().
BTW, bei AVR8 ist double identisch mit float, so daß man solche 
Feinheiten nicht bemerkt.

: Bearbeitet durch User
von my2ct (Gast)


Lesenswert?

Karl der Käfer schrieb:
> Für dieses Bildschirmfoto muss ich mich entschuldigen, der Laptop
> ist nicht mit dem Internet verbunden. Was mache ich falsch?

Trotz eines selbstleuchtenden Bildschirms versuchst du, auch die dunklen 
Stellen (Buchstaben) durch ein Zusatzlicht aufzuhellen. Das ist 
kontraproduktiv.

von Karl der Käfer (Gast)


Lesenswert?

my2ct schrieb:
> Karl der Käfer schrieb:
> Für dieses Bildschirmfoto muss ich mich entschuldigen, der Laptop
> ist nicht mit dem Internet verbunden. Was mache ich falsch?
>
> Trotz eines selbstleuchtenden Bildschirms versuchst du, auch die dunklen
> Stellen (Buchstaben) durch ein Zusatzlicht aufzuhellen. Das ist
> kontraproduktiv.

Oh, Entschuldigung, habe erst hinterher gemerkt, das der Handyblitz mit 
auf das Bild wollte ;-)

Ich verspreche auch, in Zukunft denselben Fehler nicht nochmals zu 
machen, sondern werde nach neuen Blödheiten Ausschau halten.

von Georg A. (georga)


Lesenswert?

Karl der Käfer schrieb:
> Ich verspreche auch, in Zukunft denselben Fehler nicht nochmals zu
> machen, sondern werde nach neuen Blödheiten Ausschau halten.

Stell mal die Fehlermeldungen auf englisch (LANG&Co), dann googlen sie 
sich einfacher...

Beitrag #6166771 wurde vom Autor gelöscht.
von Philipp Klaus K. (pkk)


Lesenswert?

Dirk B. schrieb:
> Noch etwas:
>
> printf kennt kein %lf

Doch. Es nutzt nichts, schadet aber auch nicht. Aus dem Standard 
(Abschnitt 7.21.6.1, Absatz 7 im Entwurf N2455) zum length modifier l:

"[…]has no effect on a following a, A, e, E, f, F, g, or G conversion 
specifier."

von Teddy (Gast)


Lesenswert?

Isolanporzellator schrieb:
> Ein Displaytext gewinnt durch einen Blitz keinen Kontrast!

Die Kugel ist eine Genkidama.
Ist doch logisch.

von Pittiplatsch (Gast)


Lesenswert?

> Die Kugel ist

x' + y' + z' = r

Und nichts anderes!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.