sqrt in C klappt nicht, warum

Gast #6164677
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
Angehängte Dateien:
Gast #6164696
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.
#6165595
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.
Gast #6165807
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.
Beitrag #6166771 wurde von einem Moderator gelöscht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren