ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
amiga-news.de Forum > Programmierung > GCC 2.95.3 und float | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
-1- | [ - Beitrag schreiben - ] |
05.08.2004, 15:22 Uhr Robinausdemwald Posts: 36 Nutzer |
Hallo! Folgendes Programm... #include <stdio.h> int main() { int i=5; int a=2; float fl = (float)i/a; printf("Ergebnis: %f\n",fl); } habe ich mit dem GCC 2.95.3 und gcc prog.c -o prog -noixemul -lm kompiliert und läuft auch soweit auf meinem Pegasos2, A4000/040 und A1200 mit MTec030 + FPU. Das Problem liegt nun darin, dass das ganze auf nem 1200er mit Blizzard 1230 ohne FPU bei der Division abstürzt ("Programmfehler (Fehlernr. 8000000B)"). Ich vermute ja, dass die mangelnde FPU das Problem ist, habe dann auch mal mit den verschiedenen GCC-Prozessor-Optionen (-m68000 usw.) rumgespielt, aber geholfen hat bis jetzt nichts. Hat da also jemand ne Idee, wo das Problem liegt? Danke, Robinausdemwald [ - Antworten - Zitieren - Direktlink - ] |
05.08.2004, 16:36 Uhr thomas Posts: 7716 Nutzer |
Ich denke mal, -lm ist falsch. Du brauchst vermutlich ein -lmnofpu oder so ähnlich. Mußt halt schauen, welche Libs es gibt. Bei VBCC ist es z.B. -lmieee. Gruß Thomas -- Email: thomas-rapp@web.de Home: home.t-online.de/home/thomas-rapp/ [ - Antworten - Zitieren - Direktlink - ] |
05.08.2004, 18:28 Uhr DariusBrewka Posts: 899 [Benutzer gesperrt] |
@thomas Habe bei mir auch -lm und wenn ich hier bei WinUAE auf 020 noFPU stelle schmiert das nicht ab. Soweit ich sehe heissen alle Libs libm in dem lib Verzeichnis befinden sich aber Unterverzeichnise für FPU etc. d.h. man mus die wohl eher rüberkopieren. Gruss Darius [ - Antworten - Zitieren - Direktlink - ] |
05.08.2004, 21:07 Uhr Robinausdemwald Posts: 36 Nutzer |
Danke erstmal für die Antworten, hat aber leider nichts geholfen. Ich hab mal mehrere libs aus dem libnix-Ordner ausprobiert, ergab alles aber keine Änderung (naja, mit den 68881-libs kam gleich beim Programmstart ein "Benötige FPU"-Requester). Richtig merkwürdig finde ich allerdings, dass float fl = (float)5/2; ohne Probleme läuft... [ - Antworten - Zitieren - Direktlink - ] |
06.08.2004, 10:15 Uhr gni Posts: 1106 Nutzer |
Zitat:Nein, das ist richtig. Die Mathebliothek heisst immer libm.a Zitat:Wenn man -m68881 nicht benutzt, dann wird eine NOFPU libm.a verwendet. Zitat:Er verwendet aber den GCC, der ganz anders ist als VBCC ;-) [ - Antworten - Zitieren - Direktlink - ] |
06.08.2004, 10:18 Uhr gni Posts: 1106 Nutzer |
Zitat:Um Himmelswillen, liesst denn niemand Dokumentation(en)? Lass bloss alle Bibliotheken wo sie sind. Das Frontend (gcc/g++) sagt dem Linker wo Bibliotheken gesucht werden sollen abhängig von den angegebenen Optionen -m680X0 und -m68881. [ - Antworten - Zitieren - Direktlink - ] |
06.08.2004, 10:20 Uhr gni Posts: 1106 Nutzer |
Zitat:So muß es auch sein. Vermutlich sind Deine libnix Bibliotheken durcheinander geraten. Am besten alle nochmal installieren (aus einem temp Verzeichnis drüber kopieren sollte reichen) [ - Antworten - Zitieren - Direktlink - ] |
06.08.2004, 11:44 Uhr DariusBrewka Posts: 899 [Benutzer gesperrt] |
@gni du hast wohl Recht ist aber schon einige Jahre her wo ich das Zeug installieren müsste. War für mich aber eine schlussforderung, da er ja keine -68881 Option angegeben hatte. [ - Antworten - Zitieren - Direktlink - ] |
06.08.2004, 15:17 Uhr Holger Posts: 8116 Nutzer |
Zitat:Was ist daran merkwürdig? Für eine compile-time Konstante braucht man zur Laufzeit keine fpu. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
06.08.2004, 16:03 Uhr Robinausdemwald Posts: 36 Nutzer |
Zitat: Hab ich gemacht, hat auch nix geholfen. Hab auch mal schnell den GCC von der GoldEd-Demo installiert, ergab aber auch dasselbe Ergebnis. Keine Ahnung, was da bei mir nicht stimmt... [ - Antworten - Zitieren - Direktlink - ] |
06.08.2004, 16:07 Uhr Robinausdemwald Posts: 36 Nutzer |
Zitat:Auch wieder wahr. Hätte ich auch gleich drauf kommen können... [ - Antworten - Zitieren - Direktlink - ] |
09.08.2004, 12:05 Uhr Holger Posts: 8116 Nutzer |
Zitat:Also für eine einfache Division benötigt man keine link-Bibliothek, also kann man an den link-Optionen rumschrauben, so viel man will, es hat keinen Einfluß. Nur die target-CPU(FPU) zählt. Was mir da eher durch den Kopf geht: auf dem Amiga haben viele Anwender die math-Bibliotheken durch fpu-only Versionen ersetzt, weil diese einen Geschwindigkeitsvorteil versprechen, dann benötigen aber zwangsläufig auch mit no-fpu übersetzte Programme eine FPU, weil sie ja genau diese Bibliotheken benutzen. Vielleicht liegt da der Fehler. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
11.08.2004, 14:15 Uhr Robinausdemwald Posts: 36 Nutzer |
Um den Thread abzuschliessen schnell des Rätsels Lösung: Es lag wohl an einem Bug in der mathieeesingbas.library im 3.1er ROM, welcher unter 3.0 bzw. mit FPU nicht auftritt... [ - Antworten - Zitieren - Direktlink - ] |
-1- | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Programmierung > GCC 2.95.3 und float | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |