Es ist bestimmt ein Fehler in deinem code. Probiere doch mal dieses Minimalbeispiel:
Code:#include <stdio.h> #include <math.h> int main () { double d=log(10.0); printf ("da: %f\n",d); }
Es ist bestimmt ein Fehler in deinem code. Probiere doch mal dieses Minimalbeispiel:
Code:#include <stdio.h> #include <math.h> int main () { double d=log(10.0); printf ("da: %f\n",d); }
Verstand op nul, frituur op 180.
Ich frag mich halt wo?Code:#include <stdlib.h> #include <stdio.h> #include <math.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <string.h> int main(void) { int f1 = open("./pi.dat", O_RDWR, O_CREAT); int f2 = open("./xlnx.dat", O_RDWR, O_CREAT); double i = 1.0; while(i < pow(10.0,3.0)) { char buffer[100]; double x = log(i); sprintf(buffer, "%f\t%f\n", i, x); write(f2, buffer, strlen(buffer)); i++; } close(f1); close(f2); return EXIT_SUCCESS; }
Deins hat jetzt funktioniert, aber vorher habe ich schon mal so ein kleines Testbeispiel gemacht, dass ging nicht.
edit: Aus einem mir nicht erfindlichen Grund hat er Probleme, wenn man den Logarithmus von Variablen berechnen will.
Oder anders gesagt:
Compliert er nicht mit dem Kommentar: "undefined reference in 'log'".Code:#include <stdio.h> #include <math.h> int main () { double x = 10.0; double d=log(x); printf ("da: %f\n",d); }
Geändert von Tzu Iop (26. Januar 2012 um 11:13 Uhr)
Papoy!
In Shakkas Beispiel, in dem eine Konstante im log-Aufruf steht, wird dieser durch den Compiler durch die entsprechende Zahl log(Konstante) ersetzt. Bei deinem Fall geht das natürlich nicht, da zur Kompilierzeit noch nicht bekannt ist, wovon er nun den Logarithmus ausrechnen muss. Daher wird bei Shakka log überhaupt nicht benötigt.
Ich vermute mal, du hast vergessen, "-lm" mitzulinken.
Das ist interessant. Bisher habe ich es immer vermieden, Linker Optionen VOR den Source Files anzugeben, aber mit gcc Version 4.6.1, schlägt das Kompilieren mit deinem Kommando fehl.
Funktioniert bei dir denn das explizite
gcc -c text.c
gcc -lm text.o
?
Die Reihenfolge, in der Object-File und Linken erfolgen, ist hier entscheidend.
Quelle: http://gcc.gnu.org/onlinedocs/gcc/Link-Options.htmlAchtung Spoiler:
Ja, das geht auch. Kenne ich mit C nicht so aus, aber bisher habe ich mangels Wissen nie auf die Reihenfolge geachtet und keine Probleme gehabt Vielleicht war es Glück
gcc -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.4.3-4ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-plugin --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i486 --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5)
normalerweise ja; hab hier nur XP, da geht da in der ->Systemsteuerung -> System -> Erweitert -> Starten und Wiederherstellen -> Einstellungen -> "Ereignisse in das Systemprotokoll eintragen" anhaken; automatischen Neustart würd ich übrigens immer deaktivieren (sonst is Win so ne Blackbox). Auslesbar is das dann unter -> Verwaltung -> Ereignisanzeige
Meine Graphikkarte hat vorgestern den Geist aufgegeben, war dann mit Onboard-Graphik unterwegs - keine Probleme.
Gestern hatte ich dann ne Karte aus der Arbeit mitgenommen (Geforce GT520) und eingebaut. Lief anfangs auch ganz gut. Beim Neustart aber brauchte der Rechner plötzlich beim Booten ewig für den USB-Controller Check und frierte dann nach paar Minuten Win7 ein.
Seitdem hängt er manchmal beim Booten, manchmal aber auch nicht, aber er friert immer nach paar Minuten Windows ein.
Was soll ich machen? Ich will keinen neuen Rechner.
Mein System (2006):
Irgendein AMD Dual 2100
Irgendein ASUS-Board
2 GB Ram
Win7 32-Bit
...ritze ratze, ritze ratze, fertig ist die Miezekatze
Alle alten Grafiktreiber entfernen.
Dann den aktuellen Treiber für die neue Karte neu installieren.
Wenn alles nix hilft, liegt vielleicht ein Problem mit dem Netzteil vor.
Verstand op nul, frituur op 180.
zu alt und instabil.
Ist es ein Modell von beQuiet?
Verstand op nul, frituur op 180.
Scheint ein anderes Problem zu sein. Nachm letzten Einfrieren kam diese Meldung.
Bin grad am Googlen - schaut schlecht aus bis jetzt.Windows Kernel Mode Driver Version 285.62 reagiert nicht mehr
...ritze ratze, ritze ratze, fertig ist die Miezekatze