ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
amiga-news.de Forum > Programmierung > Reaction und gcc | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
-1- | [ - Beitrag schreiben - ] |
30.07.2003, 20:27 Uhr Juergen-S Posts: 5 Nutzer |
Hallo, Ich muß eine größere Anwendung von StormC V4 GCC auf den "Nativen GCC" umstellen, da ich eine mysql Datenbank einbinden muß. Leider bekomme ich nun beim Linken Fehlermeldungen wie : undefined reference to 'LAYOUT_GetClass' undefined reference to 'STRING_GetClass' undefined reference to 'LISTBROWSER_GetClass' undefined reference to 'WINDOW_GetClass' undefined reference to 'AllocListBrowserNode' undefined reference to 'FreeListBrowserList' undefined reference to 'GetListBrowserNodeAttrs' Ich vermute das meine Includefiles nicht richtig sind und gcc nicht weis das er hierfür library Aufrufe machen soll. Kann mir jemand sagen wie ich zu den richtigen includes komme oder woran das sonst noch liegen kann ? Ich wäre auch Dankbar, wenn mir jemand einen guten Make-File creator nennen könnte. Bei einem großen Projekt ist es fast unmöglich die Abhängigkeiten von Hand zu setzen. Besten Dank für Eure Hilfe... Gruss Jürgen [ - Antworten - Zitieren - Direktlink - ] |
31.07.2003, 06:12 Uhr StefanHaegele Posts: 281 Nutzer |
Hallo Jürgen, dumme Frage, kann StormC über die includes denn keine mysql Datenbank ansprechen ? Im dem mysql Paket sind doch die Includes für den StormC dabei, oder ? Stefan -- Faktura.net der neue Meilenstein für Bürosoftware. Mehr unter http://www.faktura-online.net [ - Antworten - Zitieren - Direktlink - ] |
31.07.2003, 10:30 Uhr Mad_Dog Posts: 1944 Nutzer |
Hab zwar mit Reaction noch nie was gemacht, aber Du wirst vermutlich die entsprechenden Linker-libraries brauchen. So mußt Du z.B. ein StormMesa OpenGL-Programm immer mit "-l GL" compilieren. Machst Du das nicht, dann bekommst Du genau solche Fehlermeldungen wie oben beschrieben. -- http://www.norman-interactive.com [ - Antworten - Zitieren - Direktlink - ] |
31.07.2003, 12:04 Uhr indypb Posts: 42 [Administrator] |
Hallo Jürgen,Zitat: Hab' noch nie was mit ReAction gemacht. Welche Includes benutzt Du denn im Moment? Die vom NDK 3.9 sollen glaub ich mit gcc funktionieren http://www.amiga.com/3.9/download/NDK3.9.lha (2,9M) Aber obiges sieht mir auch mehr nach einer fehlenden Link-Lib aus. Im NDK ist auch eine reaction.lib enthalten. NDK_3.9/Include/linker_libs/reaction.lib tschuess [|8:) [ - Antworten - Zitieren - Direktlink - ] |
31.07.2003, 14:16 Uhr alexw Posts: 137 Nutzer |
Hi! Als ich das erste mal etwas mit Reaction programmieren wollte, bekam ich auch einige Linker-Fehler. Nachdem ich nochmal neu angefangen hatte - ich weiß nicht, was ich diesmal richtig gemacht hatte - hat's dann doch funktioniert. Auch ohne "reaction.lib". Die ist so weit ich weiß sowieso nicht für StormC geeignet. Öffnest du die verschiedenen Libraries denn? Z.B. "window.class", "string.gadget" usw? Das mache ich auf jeden Fall immer, weil's sonst nicht funktioniert. Alex. [ - Antworten - Zitieren - Direktlink - ] |
31.07.2003, 14:20 Uhr alexw Posts: 137 Nutzer |
Uuups... hab grad gelesen, dass du gar nicht mehr StormC benutzt, sondern auf den puren GCC gewechselt hast. Vielleicht hilft mein Tipp trotzdem... Alex. [ - Antworten - Zitieren - Direktlink - ] |
31.07.2003, 17:38 Uhr Holger Posts: 8116 Nutzer |
Man muss entweder gegen eine stub-lib linken, oder eine header-Datei mit inline-Funktionen einbinden. Wenn man beides nicht hat, kann man sie mit fd2pragma aus den .fd-Dateien, die beim NDK dabei sein sollten, erzeugen. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
31.07.2003, 21:58 Uhr Juergen-S Posts: 5 Nutzer |
Zitat: Das Problem sind nicht die Includes, sondern die Linker Lib für mysql. StormC GCC versteht nur das Amiga Hunk Format. Die mysql.lib liegt aber im "GCC" Format vor :-( Mit den Richtigen Includes sollte das alles kein problem sein. :-) Gruss Juergen [ - Antworten - Zitieren - Direktlink - ] |
01.08.2003, 18:36 Uhr _PAB_ Posts: 3016 Nutzer |
Hi, habe auch gerade einige Codes auf GCC umgestellt. Ein funktionierendes Beispiel findest Du im "LCD-Text.lha" aus dem Aminet. Allerdings ist der gestrige Upload glaube ich noch nicht durch, also siehe hier: http://www.Studi.ch/PAB/archiv/LCD-Test.lha Wenn dieses nicht korrekt unter GCC kompiliert, dann hast Du Includes oder Libs falsch installiert. Falls es korrekt kompiliert, hast Du evtl. falsche Pfade in den "#include <.../...>" drinnen. Am besten versucht Du mal das LCD-Test.c zu kompilieren. Wenn Du dann immernoch nicht weiterkommst, melde Dich nochmal und poste auch etwas von Deinem Reaction-Code, damit ich mal reinschauen kann. [ Dieser Beitrag wurde von _PAB_ am 01.08.2003 editiert. ] [ - Antworten - Zitieren - Direktlink - ] |
03.08.2003, 11:22 Uhr Juergen-S Posts: 5 Nutzer |
Zitat:Danke, Ich konnte deinen Code problemlos compilieren. Da Du keine Reaction classen verwendest konnte ich es so leider nicht ganz kontrollieren. Unter StormGCC kompiliert mein Programm problemlos. Nur unter dem "Orginal GCC" kommt es eben zu Linker fehlern. Ich nehme an, daß ich für GCC noch meine Includes anpassen muß, oder andere einbinden. Um z.B. die Window, Layout, Integer usw Classen einzubinden von Reaction habe ich folgende Includes... Ich muß aber auch zugeben, das ich nicht ganz verstanden habe, welche Optionen von FD2Pragam ich nehmen muß um die Includes zu konvertieren. Kann mir da einer einen Tipp geben ? Vielleicht binde ich ja doch nur die falschen Includes ein ? #include <reaction/reaction_macros.h> #include <proto/window.h> #include <proto/intuition.h> #include <proto/layout.h> #include <proto/integer.h> #include <proto/button.h> #include <proto/label.h> #include <proto/graphics.h> #include <proto/label.h> #include <proto/chooser.h> #include <proto/listbrowser.h> #include <proto/string.h> #include <classes/window.h> #include <stdio.h> #include <string.h> #include <clib/alib_protos.h> #include <gadgets/listbrowser.h> #include <gadgets/layout.h> #include <stdlib.h> [ - Antworten - Zitieren - Direktlink - ] |
03.08.2003, 14:40 Uhr _PAB_ Posts: 3016 Nutzer |
Ok, dann versuchen wir es mal mit einem einfachen ReactionDemo.c http://www.Studi.ch/PAB/archiv/ReactionDemo.c läßt sich das bei Dir compilieren ? (Mindestens LAYOUT_GetClass sollte hier funktionieren...) [ - Antworten - Zitieren - Direktlink - ] |
03.08.2003, 15:16 Uhr Juergen-S Posts: 5 Nutzer |
Zitat: Ok, hier ist das Ergebnis: 14.Work:gcc> gcc ram:ReactionDemo.c ram:ReactionDemo.c: In function 'main': ram:ReactionDemo.c:63: warning: assignment from incompatible pointer type /t/ccRhdBb8.o(.text+0x128): undefined reference to 'LAYOUT_GetClass' /t/ccRhdBb8.o(.text+0x160): undefined reference to 'BUTTON_GetClass' /t/ccRhdBb8.o(.text+0x36e): undefined reference to 'WINDOW_GetClass' collect2: ld returned 1 exit status Entweder muß ich noch Optionen angeben (gcc ist nicht meine Stärke. Ich hab ja bisher StormC verwendet.), oder es liegt an meinen Includes. Als Includes verwende ich die Includes des NDK3.9. Kannst Du mir eventuell deine Includes Packen und schicken ? Besten dank Juergen -- Jürgen Sachs http://www.mobacomp.de/ [ - Antworten - Zitieren - Direktlink - ] |
03.08.2003, 19:21 Uhr _PAB_ Posts: 3016 Nutzer |
Möglicherweise hast Du die Includes an die falsche Stelle kopiert ? Die "includes" aus dem NDK müssen sich bei GCC im Ordner "os-includes" befinden... Außerdem brauchst Du noch die "lib"s vom NDK im Ordner "lib" beim gcc - im Besonderen muß eine amiga.lib mit Reaction-Support vorhanden sein. Um herauszufinden ob Deine amiga.lib Reaction-Support hat, suche mal in der Datei nach "LAYOUT_GetClass". Evtl. hilft bei Dir auch die Option "-lamiga" beim kompilieren. Welche Version (bzw. welchen Port) vom GCC benutzt Du ? [ Dieser Beitrag wurde von _PAB_ am 03.08.2003 editiert. ] [ - Antworten - Zitieren - Direktlink - ] |
03.08.2003, 21:18 Uhr Juergen-S Posts: 5 Nutzer |
[quote] Original von _PAB_: Möglicherweise hast Du die Includes an die falsche Stelle kopiert ? Die "includes" aus dem NDK müssen sich bei GCC im Ordner "os-includes" befinden... Außerdem brauchst Du noch die "lib"s vom NDK im Ordner "lib" beim gcc - im Besonderen muß eine amiga.lib mit Reaction-Support vorhanden sein. Um herauszufinden ob Deine amiga.lib Reaction-Support hat, suche mal in der Datei nach "LAYOUT_GetClass". Evtl. hilft bei Dir auch die Option "-lamiga" beim kompilieren. Welche Version (bzw. welchen Port) vom GCC benutzt Du ? /quote] Hmm, Ja ich habe die Includes an die falsche Stelle kopiert -> geändert. Meine libamiga.a im Lib-Verzeichnis des gcc scheint keine Unterstützung für Reaction zu haben. So wie ich das sehe, fehlt mir nur noch die richtige amiga.lib. Die aus dem NDK nimmt gcc ja wohl nicht. Gibt es eine Möglichkeit diese sich wo downzuloaden, oder muß ich die selber "machen" ? Ich benutze gcc V2.95.3 wenn ich das richtig sehe... Besten Dank für die Hilfe. Jürgen -- Jürgen Sachs http://www.mobacomp.de/ [ - Antworten - Zitieren - Direktlink - ] |
03.08.2003, 21:47 Uhr _PAB_ Posts: 3016 Nutzer |
Hmm, versuche doch mal die amiga.lib aus dem NDK. Warum sollte die mit gcc nicht gehen ? Sonst kannst Du ja mal schauen, ob bei den gängingen gcc-Ports nicht irgendwo eine dabei ist bzw. ob dort vielleicht steht wo man die her bekommt. [ - Antworten - Zitieren - Direktlink - ] |
-1- | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Programmierung > Reaction und gcc | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |