DEUTSCHE VERSION |
|
Links | | | Forums | | | Comments | | | Report news |
Chat | | | Polls | | | Newsticker | | | Archive |
amiga-news.de Forum > Programmierung > vbcc: Installation | [ - Search - New posts - Register - Login - ] |
-1- | [ - Post reply - ] |
2006-06-08, 20:59 h Ralf27 Posts: 2779 User |
Bitte nicht schlagen, aber ich bins wieder mit einem C-Installationsproblem Ich hab mir vbcc aus dem aminet gezogen und auf der Festplatte entpackt. Was da auch sehr schön ist, man kann einfach auf init_vbcc klicken und dann sollte alle assigns gesetzt werden. Soweit, sogut. Ich wollte einfach mal vbccm68k ram:test.c starten und leider gibt es dann die Meldung das stdio.h nicht gefunden wird, obwohl ich eigentlich alles Includes mit dabei habe und auch dieses File vorhanden ist. Bei test.c handelt es sich um folgendes kleine Testprogramm: code:#include <stdio.h> main() { printf("Zeitvergleichn"); getchar(); printf("%cStart Ohne",7); long i=5000000; while (i--) ; printf("%cStop!nRegisterroutine mit RETURNn"); getchar(); printf("%cStart Mit",7); register long j=5000000; while (j--) ; printf("%cStop!nn",7); } Dies bekomme ich mit MaxonC++ zum laufen. Aber ich will mir halt auch mal vbcc ansehn. Ich wollte auch schon mit SnoopDos nachsehn wo er sucht, bzw. woran es liegen könnte, aber leider spuckt SnoopDos keine Fehler aus... Was könnte ich denn noch falsch gemacht haben? -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2006-06-08, 21:33 h gni Posts: 1106 User |
Zitat:Versuchs mal mit dem Lesen der Anleitung... vbcc<whatever> benutzt man _niemals_ direkt. Nimm vc - das ist das Frontend und das weis ganz genau was zu tun ist. [ - Answer - Quote - Direct link - ] |
2006-06-08, 21:45 h Ralf27 Posts: 2779 User |
Zitat: Ok, danke für den Hinweis. Hab es eben getestet, hat mir 7 Fehler ausgeworfen. Hm... Achja, wegen dem lesen von der Anleitung. Leider steh ich mit Englisch etwas arg auf dem Kriegsfuss. Mir ist schon klar das man Englisch können sollte, wenn man programmieren möchte... -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2006-06-08, 22:05 h Ralf27 Posts: 2779 User |
Ok, hab eben das berühmte "Hello World" durchlaufen lassen und es läuft. Ok, also läuft jetzt der Compiler. Jetzt muß ich also nur noch die Programme schreiben. -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2006-06-09, 07:28 h gni Posts: 1106 User |
Zitat:Daran hatte ich nicht gedacht :-( [ - Answer - Quote - Direct link - ] |
2006-06-09, 10:19 h Ralf27 Posts: 2779 User |
Hab gestern abend noch erfolgreich ein weiteres C-Programm nach Anpassung compilieren können. Und gerade das ich das C-Programm anpassen konnte macht mich euforisch (<- wie man das auch immer schreibt ). Vielleicht komm ich ja doch noch ins C rein. -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2006-06-09, 13:23 h Holger Posts: 8116 User |
Zitat: Vor allem ist 1) Englisch leichter als C und 2) Englisch auch noch außerhalb des Programmierkontext zu etwas nütze. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
2006-06-09, 13:48 h Bjoern Posts: 1730 User |
Zitat: Wenn man Äpfel mit Birnen vergleicht ist das sicher passend Gruß, Björn [ - Answer - Quote - Direct link - ] |
2006-06-09, 16:35 h Mad_Dog Posts: 1944 User |
Zitat: Gratulation! Dann wünsch ich Dir noch viel Erfolg. Vielleicht hilft Dir mein C-Kurs ein wenig weiter... -- http://www.norman-interactive.com [ - Answer - Quote - Direct link - ] |
2006-06-09, 18:56 h Ralf27 Posts: 2779 User |
Zitat: Also, gerade beim ersten Punkt muß ich dir widersprechen. Ich hatte früher schon Englisch in der Schule, verstanden hab ich aber nix. Ok, es wäre schon besser wenn man Englisch könnte, aber das extra für ein Hobby lernen? -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2006-06-09, 19:01 h Ralf27 Posts: 2779 User |
Zitat: Danke! Aber gerade ein Programm aus deinem C-Kurs macht mir Probleme: -> Mandelbrotgrafik. Includes hab ich dazukopiert (also von OS3.9), die Include für die Farben hab ich ins Programm direkt eingebaut, aber dennoch gibt es einige Probleme: 1. Die Kommentare mag er nicht. Also wenn da // steht, dann meckert er. Ich hab einfach die Kommentare gelöscht, bzw. die Mehrzeiler funktionieren ohne meckern. 2. Beim kopieren aus dem Workshop werden seltsamerweise die Leerzeichen durch ein Leerzeichenähnliches Symbol ersetzt (&HA0), es müßte aber &H20 sein, also Dez 32 für Space. Naja, war ein kleines Problem. Hab dafür in MaxonBasic schnell mal ein Programm geschrieben das die ganzen Spaces wieder umwandelt. 3. trotz der beiden korrigierten Punkte 1+2 jagt vbcc noch eine ganze Latte an Fehlern raus. Einfach ist C nun wirklich nicht.. bzw. jeder Compiler mag es wohl anderst... -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2006-06-09, 19:38 h thomas Posts: 7718 User |
@Ralf27:Zitat: Das war falsch. VBCC benutzt ein eigenes Format für bestimmte Includes, die darfst du nicht mit denen aus dem NDK3.9 ersetzen. Bei der Installation von VBCC wird nach dem Verzeichnis gefragt, in dem die OS-Includes liegen. Dort solltest du das include_h-Verzeichnis des NDK angeben und dort kannst du auch eigene Includes hinzufügen. Aber nicht im Inludes-Verzeichnis von VBCC. Alles, was bei VBCC unter Target liegt, ist tabu. Zitat: Das sind C++-Kommentare, die sind in C nicht zulässig. Um sie trotzdem zuzuöassen, kannst du die Option -+ oder -cpp-comments angeben. Zitat: Das dürfte wohl eher an den Beispielen liegen, als am Compiler. Aber du hast schon recht, verschiedene Compiler sind verschieden strikt in der Einhaltung der Regeln. Außerdem gibt es auch Spracherweiterungen, die im C-Standard nicht vorgesehen sind (z.B. das Verwenden von vorgegebenen Prozessorregistern) und das wird naturgemäß von verschiedenen Compilern unterschiedlich gehandhabt. Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Answer - Quote - Direct link - ] |
2006-06-09, 20:06 h Ralf27 Posts: 2779 User |
Zitat:hm, ich hab nix installiert. Einfach Archiv entpackt und dann auf INIT getippt und fertig. Aber gut zu wissen das sogar die Includes unterschiedlich sind. Mal sehn wie ich es im erzählen soll. Zitat:O ha, also sind im C-Kurs vom Mad Dog C++ Teile vorhanden? Ich dachte eigentlich das es da mit ANSI-C losgeht. Aber ich kann doch eigentlich kein Fehler machen, wenn ich diese Option -cpp-comments dazunehme. Werd ich dann auch gleich machen wenn ich herrausfinde, wo ich das machen müßte. Also jetzt nicht direkt bei der Eingabe von vc test.c, sondern vorher. Muß halt mal nachsehn. Zitat:Ja, das merk ich eben auch. Hab da ein Beispiel von MaxonC++, das direkt Register benutzt bzw. mal vergleicht: Einmal mit Register und einmal ohne. (also quasi Speedtest) Das ganze ist es ja, was C so kompliziert macht, bzw. schwer für den Anfänger. Jeder Compiler mag es etwas anderst, hat andere Erweiterungen die andere nicht haben oder gar Includes die nicht gemischt werden dürfen, etc. -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2006-06-09, 20:14 h Ralf27 Posts: 2779 User |
code:... assign >NIL: vbccm68k: vbcc:targets/m68k-amigaos assign >NIL: vincludem68k: vbccm68k:include ;assign >NIL: vincludem68k: <path to your AmigaOS header files> ADD ... In der letzten Zeile kann ich die Includes vom System angeben. Ich hab jetzt beim Kopieren keine Datei überschrieben. Das wäre dann ja das gleiche wie das da oben mit Assigns, wenn ich diese setzen würde. Bzw. finde ich da jetzt gerade keinen Unterschied. Der Pfad wird ja gerade einfach dazuaddiert und fertig. Oder überseh ich da jetzt schon wieder was? (PS: Mir ist klar das da oben noch ein ; steht, also das das da oben als Kommentar steht und da es weg müßte und ein richtiger Pfad rein sollte, damit es normal läuft) -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2006-06-09, 20:37 h Ralf27 Posts: 2779 User |
Ok, hab es jetzt richtig zusammengebaut. Also die Includes vom System mit dem richtigen Assign angebunden. Aber jetzt kommen halt so viele Fehler und eigentlich versteh ich jetzt nur noch Bahnhof. Hoffentlich könnt ihr mir da weiterhelfen was ich denn jetzt wieder falsch gemacht habe: code:--> else warning 54 in line 168 of "ram:testk.c": ; expected t_5_0.o: In "_Berechne_n": Error 21: t_5_0.o (CODE+0xd8): Undefined reference to __ieeemuld. Error 21: t_5_0.o (CODE+0xf6): Undefined reference to __ieeemuld. Error 21: t_5_0.o (CODE+0x152): Undefined reference to __ieeemuld. Error 21: t_5_0.o (CODE+0x168): Undefined reference to __ieeemuld. Error 21: t_5_0.o (CODE+0x1b6): Undefined reference to __ieeemuld. Error 21: t_5_0.o (CODE+0x1d4): Undefined reference to __ieeemuld. t_5_0.o: In "_Mandelbrot": Error 21: t_5_0.o (CODE+0x27a): Undefined reference to __ieeemuld. t_5_0.o: In "_main": Error 21: t_5_0.o (CODE+0x598): Undefined reference to __ieeemuld. t_5_0.o: In "_Berechne_n": Error 21: t_5_0.o (CODE+0x114): Undefined reference to __ieeesubd. t_5_0.o: In "_main": Error 21: t_5_0.o (CODE+0x6c6): Undefined reference to __ieeesubd. Error 21: t_5_0.o (CODE+0x782): Undefined reference to __ieeesubd. Error 21: t_5_0.o (CODE+0x80e): Undefined reference to __ieeesubd. t_5_0.o: In "_Berechne_n": Error 21: t_5_0.o (CODE+0x12e): Undefined reference to __ieeeaddd. Error 21: t_5_0.o (CODE+0x182): Undefined reference to __ieeeaddd. Error 21: t_5_0.o (CODE+0x1f2): Undefined reference to __ieeeaddd. t_5_0.o: In "_Mandelbrot": Error 21: t_5_0.o (CODE+0x340): Undefined reference to __ieeeaddd. Error 21: t_5_0.o (CODE+0x37c): Undefined reference to __ieeeaddd. t_5_0.o: In "_main": Error 21: t_5_0.o (CODE+0x676): Undefined reference to __ieeeaddd. Error 21: t_5_0.o (CODE+0x73c): Undefined reference to __ieeeaddd. Error 21: t_5_0.o (CODE+0x7c8): Undefined reference to __ieeeaddd. t_5_0.o: In "_Berechne_n": Error 21: t_5_0.o (CODE+0x20c): Undefined reference to __ieeecmpd. t_5_0.o: In "_Mandelbrot": Error 21: t_5_0.o (CODE+0x262): Undefined reference to __ieeefltsld. Error 21: t_5_0.o (CODE+0x32c): Undefined reference to __ieeefltsld. Error 21: t_5_0.o (CODE+0x368): Undefined reference to __ieeefltsld. Error 21: t_5_0.o (CODE+0x356): Undefined reference to __ieeedivd. Error 21: t_5_0.o (CODE+0x392): Undefined reference to __ieeedivd. t_5_0.o: In "_main": Error 21: t_5_0.o (CODE+0x5b2): Undefined reference to __ieeedivd. Error 21: t_5_0.o (CODE+0x566): Undefined reference to __ieeenegd. Error 21: t_5_0.o (CODE+0x57a): Undefined reference to __ieeefltswd. t_5_0.o: In "_FreePens": Error 21: t_5_0.o (CODE+0x90): Undefined reference to _GfxBase. t_5_0.o: In "_Mandelbrot": Error 21: t_5_0.o (CODE+0x3b6): Undefined reference to _GfxBase. Error 21: t_5_0.o (CODE+0x3cc): Undefined reference to _GfxBase. Error 21: t_5_0.o (CODE+0x3f8): Undefined reference to _GfxBase. amiga.lib(ObtainBestPen): In "_ObtainBestPen": Error 21: amiga.lib(ObtainBestPen) (CODE+0x6): Undefined reference to _GfxBase. amiga.lib(SetWindowPointer): In "_SetWindowPointer": Error 21: amiga.lib(SetWindowPointer) (CODE+0x4): Undefined reference to _IntuitionBase. amiga.lib(OpenWindowTags): In "_OpenWindowTags": Error 21: amiga.lib(OpenWindowTags) (CODE+0x4): Undefined reference to _IntuitionBase. vlink fehlgeschlagen Rückgabewert 20 vlink -s -x -R -dn vlibm68k:startup.o "T:t_5_0.o" -lvc -lamiga -o a.out failed http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2006-06-09, 20:51 h thomas Posts: 7718 User |
vc blabla.c -o blabla -lauto -lmieee Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Answer - Quote - Direct link - ] |
2006-06-09, 20:55 h Ralf27 Posts: 2779 User |
Zitat: Ja, danke! Damit hab ich die meisten Fehler beseitigt. Jetzt hab ich nur noch einen bei ELSE ...keine Ahnung wieso. Ich muß mir das nochmal ansehn. Wegen den parametern(ich hab noch nicht nachgesehn): - lmieee Ich vermute mal das damit Zahlen doppelter Genauigkeit benutzt werden -lauto Naja, da wird irgendwas automatisch gemacht. Oh, ich hab da wohl noch einiges zu lernen. -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2006-06-09, 21:20 h Ralf27 Posts: 2779 User |
Ich konnte das Mandelbrotprogramm aus dem C-Kurs vom MadDog eben erfolgreich compilieren und starten. Also sehe ich das richtig das man dann wirklich dann C-Code von anderen Compileren wirklich nicht direkt übernehmen kann, sondern erst noch zwischen den C-Compilern für das gleiche System noch portieren darf.... hmmm. Ok, ich darf noch anmerken das mir schon klar ist, wenn man richtigen ANSI-C-Code schreiben würde, dann würden das alle C-Compiler verstehn (wenn ich das richtig verstanden habe). Also am besten möglichst reines ANSI-C lernen. ... -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2006-06-09, 23:37 h thomas Posts: 7718 User |
@Ralf27:Zitat: Nicht wirklich. Wenn der Ursprungsprogrammierer sich ein bißchen Mühe gibt, kann man das Programm mit allen Compilern umwandeln. Die Eigenheiten der Compiler beschränken sich wirklich auf minimale Ausnahmen. Die meisten Quelltexte kann man sogar ohne Änderungen zwischen gleichartigen Plattformen austauschen (z.B. OS3, OS4, MorphOS, AROS). Das Problem mit den Linker-Libs wird dir mit jedem C-Compiler passieren. mieee.lib ist eine Bibliothek mit Funktionen zum Rechnem mit Fließkommazahlen. Fließkommazahlen gehören nicht zum Umfang der normalen C-Laufzeitbibliothek. Wenn du Fließkommazahlen benutzt, mußt du die Bibliothek mit den Fließkommafunktionen dazulinken. Und daß man Amiga-Libraries erst öffnen muß, bevor man ihre Funktionen benutzen kann, sollte jedem Amiga-Programmierer bewußt sein. Das kann man entweder von Hand machen: struct Library *xybase; xybase = OpenLibrary("xy.library",0); .... CloseLibrary (xybase); Oder man überläßt es dem Compiler (eigentlich dem Linker). Dafür gibt es die auto.lib, die für die meisten Libraries die Base deklariert und Code enthält, der die Libs vor dem Start öffnet und am Ende wieder schließt. Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Answer - Quote - Direct link - ] |
2006-06-10, 01:43 h ylf Posts: 4112 User |
Also mein letztes C-Programm läßt sich unverändert sowohl unter Linux mit gcc, MacOSX mit xcode (gcc) aus auch Windows mit lcc compilieren. Ist aber nur ein Komandozeilenprogramm. Solange keine Betriebssystemspezifischen Funktionen zur Anwendung kommen, sollte der code 1:1 gehen. bye, ylf [ - Answer - Quote - Direct link - ] |
2006-06-10, 12:39 h Holger Posts: 8116 User |
Zitat: Das kann man so nicht stehen lassen. Seit 1999, also ca. 7 Jahren, gehört diese Art der Kommentare auch zum C-Standard, der treffenderweise auch als C99-Standard bezeichnet wird. mfg http://de.wikipedia.org/wiki/Varianten_der_Programmiersprache_C#C99 [ - Answer - Quote - Direct link - ] |
2006-06-14, 08:03 h Mad_Dog Posts: 1944 User |
Hallo Ralf, Sorry, daß ich mich erst jetzt wieder melde... Was die C++ - Kommentare angeht: Siehe Posting von Holger. Ansonsten: Die meisten Listings aus meinem Kurs habe ich sowohl mit StormC 3.0 , als auch mir gcc erfolgreich getestet. Eigentlich sollten diese ohne Änderung mit jedem (ANSI C99 kompatiblen) C Compiler übersetzt werden können. Falls etwas seltsam ist - bitte melden! Es kann durchaus sein, daß ich in dem einen oder anderen Code was nicht ganz standardkonformes (z.B. seltsame Macros) eingebaut habe. Zu den komischen Zeichen beim "copy and paste" aus dem Browser-Fenster - Das hat folgenden Hintergrund: Neuerdings habe ich alle Codes mit syntax-highlighting in StormC-artigem style versehen. Dazu habe ich mir ein kleines Perl-Programm, sowie ein Arexx-Makro gebastelt. Diese Kombo sorgt dann dafür, daß GoldED automatisch aus dem C-Code schönen ( ? ) , farbigen HTML-Code generiert. Dabei habe ich feststellen müssen, daß manche Browser innerhalb eines <pre> </pre> font-Tags (für die Farbumschaltung der Schrift) nicht korrekt verarbeiten. Also hab ich - sozusagen als Notlösung - das Perl-Programm so gemacht, daß es keinen vorformatierten Text für den Code verwendet, sondern diesen selbst mit expliziten Leerzeichen formatiert. Ist sicher nicht so toll, aber was besseres ist mir auf die Schnelle nicht eingefallen. -- http://www.norman-interactive.com [ - Answer - Quote - Direct link - ] |
2006-06-14, 08:43 h thomas Posts: 7718 User |
@Mad_Dog: Vielleicht kannst du alle Quelltexte auch als Textdatei verlinken, dann muß man gar nicht Cut&Paste benutzen und hat den Quelltext genauso wie du ihn gedacht hast. Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Answer - Quote - Direct link - ] |
2006-06-14, 12:31 h Holger Posts: 8116 User |
Zitat: Kein Wunder <font> ist innerhalb von <pre> auch nicht erlaubt. Wenn Du stattdessen <span> benutzt und per style-Attribute formatierst, funktioniert es wunderbar. Hat halt nur den Nachteil, daß es mit Amiga-Browsern nicht funktioniert. Als Kompromiß könnte Du es so machen, wie ich es i.A. bei source-code Formatierungen mache: benutze logische (erlaubte) Tags wie <em> für Kommentare, <strong> für keywords, <var> für Bezeichner und <dfn> für Konstanten. Dann kannst Du selbige per zentralem CSS auch formatieren. Dann sieht es in Amiga-Browsern zwar nicht bunt aus, ist aber zumindest mit optischer Syntax-Hervorhebung versehen UND entspricht nicht nur dem Standard, sondern auch der Forderung, logische Auszeichnungen vorzunehmen und stilistische Formatierung davon zu trennen. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
-1- | [ - Post reply - ] |
amiga-news.de Forum > Programmierung > vbcc: Installation | [ - Search - New posts - Register - Login - ] |
Masthead |
Privacy policy |
Netiquette |
Advertising |
Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved. |