Archiv verlassen und diese Seite im Standarddesign anzeigen : gcj Java-compiler funzt ned
Hallo!
Ich hab mir jetzt gcc 3.2 runtergeladen um gcj benutzen zu können und mit einem g++ 2.9*** kompiliert.
Dann hab ich meinen gcj an nem einfachen Java-Programm ausprobiert und folgende Meldung gekriegt:
/usr/lib/crt1.o: In function `_start':
/usr/lib/crt1.o(.text+0x18): undefined reference to `main'
collect2: ld returned 1 exit status
Was ist das nun für ein Problem? Kann es sein, dass die crt1.o nicht binärkompatibel zu dem neuen gcc 3.2 ist und deshalb der Fehler auftritt?
Hab ich zumindest angenommen, mir gleich die neueste glibc2.2.5 runtergeladen, hab aber irgendwie Probleme beim Kompilieren.
Jetzt würde ich von euch gerne wissen, bevor ich mit glibc weiterwurschtle, ob das überhaupt mein Problem ist, oder ob gcj möglicherweise aus einem anderen Grund nicht funktioniert.
MfG Xare
Hi,
Hast du denn die Main-Klasse spezifiziert?
gcj java1.java java2.java main.java -o Programm --main=main
Wie du bei dem Parameter main genau sehen kannst, musst du ihm einfach die Hauptlasse angeben.
Wars das?
Mfg
Hi!
Das wars, danke für die Hilfe!
Aber warum merkt das denn der gcj nicht von selbst? Kann der javac doch auch. Vor allem, wenn es nur eine Klasse/Datei ist.
MfG Xare
Hi,
Du sagst ja: java hauptklasse
Damit sagst du ja praktisch, dass das die Hauptklasse ist, und wenn keine main-methode drinnen ist, beschwert er sich.
Natürlich könnte man sagen, dass auch automatsch der gcj machen könnte, aber die java-spezification sieht vor, dass es mehrere main-methoden geben darf. Also gehts dann doch nicht ;-)
Mfg
hallo!
Original geschrieben von ceisserer
gcj java1.java java2.java main.java -o Programm --main=main
das funktioniert bei mir nicht! ich erhalte folgende fehlermeldung:
GCJ.EXE: installation problem, cannot exec 'as': No such file or directory
Was stimmt da nicht?
MFG
Wisi
tkortkamp
05-12-2002, 20:17
@wisi:
Dir fehlt das Programm 'as'... Installiere bitte das Paket binutils nach.
c ya,
Tobias
peschmae
06-12-2002, 09:40
aber die java-spezification sieht vor, dass es mehrere main-methoden geben darf. Also gehts dann doch nocht ;-)
was so auch Sinn macht, kann man doch damit jeweils Klassenspezifische Testroutinen in jeder Klasse in die main - Methode schreiben und auch dort belassen. So kann man nach jeder Änderung schnell schauen, ob die Klasse noch so reagiert wie vorgesehen.
der Grund wieso du die Hauptklasse angeben musst, liegt darin, dass du mit GCJ das ganze zu einer Datei linken kannst, und dann ist natürlich eine Hauptklasse nötig (genau wie bei den Jar - Files auch)
MfG Peschmä
Original geschrieben von tkortkamp
@wisi:
Dir fehlt das Programm 'as'... Installiere bitte das Paket binutils nach.
So, jetzt habe ich alles, ich habe einfach noch einmal das ganze MinGW + GCJ runtergeladen und kann auch EXE-Dateien erstellen, aber wenn ich die Datei ausführe kommt der Fehler:
returned
end
Exception in thread "main" java.awt.AWTError: Cannot load AWT toolkit: gnu.java.awt.peer.gtk.GtkToolkit
Was tun?
GCJ unterstützt noch kein AWT.
Mfg
Original geschrieben von ceisserer
GCJ unterstützt noch kein AWT.
Sch*****!!!
So viel Zeit umsonst verschwendet. Da kann ich ja gleich mit C++ programmieren.
Hi!
Nun, es gibt Bindings im Alpha-stadium, so kann man AWT nachrüsten.
GCJ kann derzeit nur Java-GTK/GNOME/SWT/Java-QT/KDE.
Mfg
Nun, hab jetzt erst gemerkt, dass du windows nimmst: Vergiss den GCJ, der läuft nur auf ordentlichen systemen gut.
Unter windows kannste es vergesen, da kann der nicht mal dynamisch linken ;-)
Mfg
Gibt's vielleicht einen anderen JavaNative-Compiler ausser den folgenden, der AWT unterstützt? (die sind entweder zu groß, gehen nicht zum Download oder sind zu langsam (z.B. JET)):
- Excelsior JET
- GCJ (in Cygwin/MinGW)
- TowerJ
- VisualAge
- JOVE
- Manta
MFG
Wisi
JET ist dir zu langsam?
JET ist sogar schneller als der gcj!
Mfg
Original geschrieben von ceisserer
Was?
JET ist dir zu langsam?
Die executables sind wohl das schnellste was ich je gesehen habe, JET ist sogar schneller als der gcj!
Mfg Linuxhippy
Mag wohl sein, das JET schnell ist, aber auf meinem Schrott-Computer würde es drei Tage lang dauern, bis die ganzen Klassen kompiliert sind.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.