PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : gcc: log10 und log10l fehlt



Linus
01-06-2013, 00:32
In einem C-Programm verwende ich problemlos Funktionen wie powl und sqrtl, aber zu log10 und log10l meldet der gcc: undefined reference to `logl0'

Aber diese Funktionen sind C99-Funktionen; die müssen in irgendeinem Paket sein, aber in welchem? :confused:

Laut C99 müssten die Funktionen in math.h stehen, aber unter Ubuntu ist das nicht der Fall.

anda_skoa
01-06-2013, 08:56
"undefined reference" ist eine Linkerfehlermeldung, d.h. die Kompilierung hat soweit geklappt (die Funktion wurde in einem der inkludierten Header gefunden).

Vermutlich linkst du derzeit noch nicht gegen die libm, die Bibliiothek, die diese Funktionen bereitstellt.

Füge


-lm

zu deinen Linkerflags bzw zu deinem Linkkommando hinzu.

Ciao,
_

Linus
01-06-2013, 10:35
"undefined reference" ist eine Linkerfehlermeldung, d.h. die Kompilierung hat soweit geklappt (die Funktion wurde in einem der inkludierten Header gefunden).

Vermutlich linkst du derzeit noch nicht gegen die libm, die Bibliiothek, die diese Funktionen bereitstellt.

Füge


-lm

zu deinen Linkerflags bzw zu deinem Linkkommando hinzu.

Ciao,
_

Ohne -lm würden ja schon Funtionen wie sqrtl fehlen, das kann nicht die Ursache sein.
Ich Kompilierte mit dieser Kommandozeile:

gcc -O5 -ffast-math -lm -o bol1 bol1.c

Bis auf log10 funktioniert es auch hiermit:

gcc -O5 -ffast-math -o bol1 bol1.c

Es funktioniert aber, mit -lm, weder ohne -O5 noch ohne -ffast-math, denn dann bekomme ich ich zu sqrtl und powl wieder den Fehler undefinded reference.

sommerfee
02-06-2013, 09:28
In einem C-Programm verwende ich problemlos Funktionen wie powl und sqrtl, aber zu log10 und log10l meldet der gcc: undefined reference to `logl0'

In der Fehlermeldung steht nicht "log10", sondern "logl0". Also hast du dich vielleicht im Quelltext vertippt?

Linus
02-06-2013, 10:46
In der Fehlermeldung steht nicht "log10", sondern "logl0". Also hast du dich vielleicht im Quelltext vertippt?

Tatsächlich ist da an Stelle der Eins ein kleines L, aber in dem Font Courier sehen die exakt gleich aus, so das der Vertipper unsichtbar war! :eek:
Das ist ja eine üble Sabotage; sowas krankes gehört verboten :mad:
Ich habe jetzt mal umgeschaltet auf Nimbus Roman No9 l, mit dem es das Problem nicht gibt.

sommerfee
02-06-2013, 10:59
Das ist ja eine üble Sabotage; sowas krankes gehört verboten :mad:

Dann ist das vielleicht was für dich:

http://www.heise.de/developer/meldung/Neue-entwicklerfreundliche-Schrifttype-von-Adobe-1718746.html
http://www.golem.de/news/open-source-font-source-code-verschoenert-source-code-1209-94795.html

Linus
02-06-2013, 15:49
Dann ist das vielleicht was für dich:

http://www.heise.de/developer/meldung/Neue-entwicklerfreundliche-Schrifttype-von-Adobe-1718746.html
http://www.golem.de/news/open-source-font-source-code-verschoenert-source-code-1209-94795.html

Ja, das sieht gut aus.
Gibt es eigentlich Erkenntnisse wie Fonts entstanden, bei denen verschiedene Zeichen exakt gleich dargestellt werden?
Das sieht doch nach dem Werk eines Schläfers aus, im Auftrag von al-Qaida.

Linus
04-06-2013, 08:53
Nachtrag: Ich bin zunächst auf den Font "Source Code Pro" umgestiegen, musste aber feststellen das a) die Leerzeichen ungefähr halbe Breite haben und b) variable Größe! :eek:

Also auch dieser Font ist nicht monospaced und für Sourcecode sowie ASCII-Zeichnungen ungeeignet! :(
Zwangsweise bin ich deshalb zu "Ubuntu Mono" gewechselt.

sommerfee
04-06-2013, 21:14
Nachtrag: Ich bin zunächst auf den Font "Source Code Pro" umgestiegen, musste aber feststellen das a) die Leerzeichen ungefähr halbe Breite haben und b) variable Größe! :eek:

Merkwürdig, bei mir das das definitiv nicht so, "Source Code Pro" ist bei mir monospaced.

Linus
04-06-2013, 23:41
Merkwürdig, bei mir das das definitiv nicht so, "Source Code Pro" ist bei mir monospaced.

Also ich habe alle verschiedenen Teil-Fonts ausprobiert, z. B. Source Sans Pro Semibold, aber alle haben den gleichen Bug, zumindest wenn ich kwrite als Editor benutze.

sommerfee
05-06-2013, 06:41
Also ich habe alle verschiedenen Teil-Fonts ausprobiert, z. B. Source Sans Pro Semibold, aber alle haben den gleichen Bug, zumindest wenn ich kwrite als Editor benutze.

Nur "Source Code Pro" ist monospaced (z.B. "Source Code Pro Regular 11"), "Source Sans Pro" nicht.

Linus
05-06-2013, 08:41
Nur "Source Code Pro" ist monospaced (z.B. "Source Code Pro Regular 11"), "Source Sans Pro" nicht.

Achso, da hat Heise zu Source Code Pro verwirrenderweise über "Siehe dazu auch:" auf Source Sans Pro verwiesen, obwohl das was ganz anderes ist :rolleyes: