amiga-news 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:
Leider bekomme ich nun beim Linken Fehlermeldungen wie :
undefined reference to 'LAYOUT_GetClass'

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 ?


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: 8090
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:
Original von StefanHaegele:
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 ?
-


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:
Original von _PAB_:
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. ]

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:
Original von _PAB_:
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...)


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-2022 by amiga-news.de - alle Rechte vorbehalten.
.