DEUTSCHE VERSION |
|
Links | | | Forums | | | Comments | | | Report news |
Chat | | | Polls | | | Newsticker | | | Archive |
amiga-news.de Forum > Programmierung > GCC 2.95.3 und float | [ - Search - New posts - Register - Login - ] |
-1- | [ - Post reply - ] |
2004-08-05, 15:22 h Robinausdemwald Posts: 36 User |
Hallo! Folgendes Programm... #include <stdio.h> int main() { int i=5; int a=2; float fl = (float)i/a; printf("Ergebnis: %fn",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 [ - Answer - Quote - Direct link - ] |
2004-08-05, 16:36 h thomas Posts: 7718 User |
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/ [ - Answer - Quote - Direct link - ] |
2004-08-05, 18:28 h DariusBrewka Posts: 899 [Banned user] |
@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 [ - Answer - Quote - Direct link - ] |
2004-08-05, 21:07 h Robinausdemwald Posts: 36 User |
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... [ - Answer - Quote - Direct link - ] |
2004-08-06, 10:15 h gni Posts: 1106 User |
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 ;-) [ - Answer - Quote - Direct link - ] |
2004-08-06, 10:18 h gni Posts: 1106 User |
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. [ - Answer - Quote - Direct link - ] |
2004-08-06, 10:20 h gni Posts: 1106 User |
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) [ - Answer - Quote - Direct link - ] |
2004-08-06, 11:44 h DariusBrewka Posts: 899 [Banned user] |
@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. [ - Answer - Quote - Direct link - ] |
2004-08-06, 15:17 h Holger Posts: 8116 User |
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. [ - Answer - Quote - Direct link - ] |
2004-08-06, 16:03 h Robinausdemwald Posts: 36 User |
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... [ - Answer - Quote - Direct link - ] |
2004-08-06, 16:07 h Robinausdemwald Posts: 36 User |
Zitat:Auch wieder wahr. Hätte ich auch gleich drauf kommen können... [ - Answer - Quote - Direct link - ] |
2004-08-09, 12:05 h Holger Posts: 8116 User |
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. [ - Answer - Quote - Direct link - ] |
2004-08-11, 14:15 h Robinausdemwald Posts: 36 User |
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... [ - Answer - Quote - Direct link - ] |
-1- | [ - Post reply - ] |
amiga-news.de Forum > Programmierung > GCC 2.95.3 und float | [ - Search - New posts - Register - Login - ] |
Masthead |
Privacy policy |
Netiquette |
Advertising |
Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved. |