(.text+0x88): undefined reference to `pow'
-
Moin Moin,
Hmmm. die function
pow()
ist meines wissens in der math.h eingebunden. daher frag ist mich, grade, warum er diese fkt nicht laden kann/will.
ich vermude mal 2 sachen.
a) ist diese nicht in der math.h oder
b) ich hab die an der falschen stelle eingebunden...#include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include "Wandela.h"
der aufruf von pow findet nur in dieser Befehlszeile statt.
if (cobin = (char)1) temp=temp+pow(BIN, b); else temp=temp+0;
**
Hier auch die vollständige ftk.
char *btc(char *cobin) { char *_cobin = malloc(sizeof(char) * (100 + 1)); // Speicher von 100 + 1 resavieren. _cobin[0] = 0; int b = 8; int a=0; int temp = 0; printf("ich bin 'cobin' und trage %s mit mir \n", cobin); for (a=0; a<8; ++a) { --b; if (cobin[b] = (char)1) temp=temp+pow(BIN, b); else temp=temp+0; printf("Temp = %i ", temp); } char *_btc = malloc(sizeof(char) * (10 + 1)); _btc[0] = 0; _btc[0] = (char)(temp-48); printf("%s\n", _btc); strcpy(_cobin, _btc); free(_btc); return(_cobin); }
ich weiß, das pow länger braucht als BIN*BIN*BIN... aber wollte ich auf eine switch schleife verzichten, damit das teil net zu lang wird.
falls jemand da eine idee hätte, wie ich das via [b]C** lösten könnte. immer zu.
-
Du musst schon die Fließkomma-Library mit einbinden.
Da ich dein System nicht kenne, kann ich leider nicht sagen wie und wo die liegt oder heißt oder eingebunden wird.
-
DirkB schrieb:
Du musst schon die Fließkomma-Library mit einbinden.
Da ich dein System nicht kenne, kann ich leider nicht sagen wie und wo die liegt oder heißt oder eingebunden wird.
Fließkomma-library?
muß ich mal sehen, wo die bei mir liegt.
und was system angeht. ich verwende Ubuntu 10.04.
-
Das ist gcc-spezifisch: Du musst den Mathematik-Anteil der Standardbibliothek explizit linken, indem du die Linkeroption
-lm
angibst.
-
Bashar schrieb:
Das ist gcc-spezifisch: Du musst den Mathematik-Anteil der Standardbibliothek explizit linken, indem du die Linkeroption
-lm
angibst.ergo die makefile entsprechend ändern?
CC = gcc PROG = inout all: $(CC) -c $(PROG).c $(CC) -lm -o $(PROG) $(PROG).o clean: rm -f $(PROG) $(PROG).o *~
oder den befehl manuell eintragen.
-
maik81ftl schrieb:
ergo die makefile entsprechend ändern?
$(CC) -lm -o $(PROG) $(PROG).o
Das sieht schonmal gut aus.
-
Bashar schrieb:
maik81ftl schrieb:
ergo die makefile entsprechend ändern?
$(CC) -lm -o $(PROG) $(PROG).o
Das sieht schonmal gut aus.
Läuft so aber leider nicht
die schaut schon so aus...
naja! mach i des halt via
gcc -lm -o Wandela Wandela.c
geht genauso und die meldung is raus...
-
das -lm ans Ende