Linux Forum | www.Linux-Web.de |
Registrieren - Kalender - Mitglieder - Team - Suche - Foren FAQ - Linux Shop - Forenübersicht - Portal

 
Boardmenü
» Forum
» Portal
» Shop
» Kalender
» Mitglieder
» Team
» Link uns
» Archiv

» Partner
» Linkliste
» F.A.Q
» Impressum

»» Suche

» Hallo Gast
» [Login | Registrieren ]
 Informationen
» Aktive Themen der
    letzten 24 Stunden

» Neue Beiträge seit
    letztem Besuch

» Neueste Mitglieder
» Wer ist wo Online?
» alle Foren als
   gelesen makieren
 Passendes
» Linux Shop
» Linux-Fanartikel-Shop
» Ubuntu Forum
» Gentoo Forum
» KDE Forum
» KDE Forum
» Slackware Forum
» Qt Forum

Boardsuche
Board durchsuchen:


Guckloch
Hier kann man sich über die letzten Beiträge im Board live informieren, das kleine Fenster welches sich durch einen Klick öffnet aktualisiert sich von alleine alle 60 Sekunden.

Guckloch öffnen

Linux Forum | www.Linux-Web.de | » Distributionsunspezifisches » Kompilieren » SuSE GNU Classpath 0.98 kompilieren » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen GNU Classpath 0.98 kompilieren
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
The-Collar
Seepferdchen


Dabei seit: 05.01.2010
Beiträge: 4
Zuhause (1.1): openSUSE 11.1
Zuhause (1.2): Ubuntu 9.10

GNU Classpath 0.98 kompilieren Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo alle zusammen!

Also ich habe folgendes vor:

Ich bastel an einem kleinen Board rum auf dem ein Arm9 drauf ist und ein embedded Linux läuft. Letztendlich soll da drauf eine Java Virtual Machine laufen und einfache Java-Anwendungen ausführbar sein. Ich bitte darum nicht den Sinn von Java auf dem Board zu diskutieren - Danke! Lächeln

Meine Suche dazu führte mich zur JamVM die den GNU Classpath nutzt. Folglich muss ich jetzt also neben der JamVM den GNU Classpath für mein Board crosscompilieren und hier kommt es zu einem Problem!
Ich hab von der Website die neuste Version 0.98 geladen, entpackt und die Configuration mit folgenden Parametern gestartet

Zitat:
./configure --prefix=/targets/install/classpath/eprefix --exec-prefix=/targets/install/classpath/exec --disable-plugin --disable-jni --disable-alsa --disable-gjdoc --host=arm-linux-gnu --target=arm-linux-gnu CFLAGS=-I/usr/local/LxNETES-3/arm-linux/arm-linux/include LDFLAGS=-L/usr/local/LxNETES-3/arm-linux/arm-linux/lib CC=/usr/local/LxNETES-3/arm-linux/arm-linux/bin/gcc LIBS=-L/usr/local/LxNETES-3/arm-linux/arm-linux/lib


Das scheint auch ohne weiteres durchgelaufen zu sein (keine Fehler oder Warnungen die mir aufgefallen wären) und eine Makefile wurde erzeugt.

Nun also weiter mit dem Befehl make. Hier kommt es nun zu folgender Fehlermeldung:

Zitat:

The_Collar@SuSE:/targets/classpath-0.98> make
Making all in lib
make[1]: Entering directory `/targets/classpath-0.98/lib' true top_builddir=.. top_srcdir=.. /bin/sh ./gen-classlist.sh standard
Adding java source files from srcdir '..'.
Adding java source files from VM directory ../vm/reference
ecj -warn:-deprecation,serial,unusedImport -J-Xmx768M -source 1.5 -target 1.5 -bootclasspath '' -classpath ../vm/reference:..:../external/w3c_dom:../external/sax:../external/relaxngD
atatype:../external/jsr166:.:: -d . @classes
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at org.eclipse.jdt.internal.compiler.Compiler.handleInternalException(Compiler
.java:561)
at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:498)
at org.eclipse.jdt.internal.compiler.batch.Main.performCompilation(Main.java:3
543)
at org.eclipse.jdt.internal.compiler.batch.Main.compile(Main.java:1645)
at org.eclipse.jdt.internal.compiler.batch.Main.main(Main.java:1358)
make[1]: *** [compile-classes] Fehler 1 make[1]: Leaving directory `/targets/classpath-0.98/lib'
make: *** [all-recursive] Fehler 1
The_Collar@SuSE:/targets/classpath-0.98>


Offensichtlich ist irgendwo zu wenig Speicher verfügbar. Ok - ich hab nicht den leistungsstärksten PC hier, aber nach der Eingabe des Befehls free in die Konsole sehe ich das ca.. 400mb im RAM und 1,6GB im Swap noch frei sind. Ist das etwa nicht genug??

Ich bitte um eure Hilfe! Woran liegts? Was kann ich tun?
Ich muss noch hinzufügen das ich die Konfiguration versuchsweise ohne Parameter gestartet habe und daraufhin die selbe Fehlermeldung bekam! Es kann also nicht an einem Parameter liegen den ich gesetzt habe.

Mfg The-Collar

Mein PC:

System: openSUSE 11.1
KDE: 4.1.3
Betriebssystem: Linux 2.6.27.39-0.2-pae i686
Prozessor: Pentium 4 (3.2GHz)
RAM: 1GB

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von The-Collar: 05.01.2010 10:19.

05.01.2010 10:14 The-Collar ist offline E-Mail an The-Collar senden Beiträge von The-Collar suchen Nehmen Sie The-Collar in Ihre Freundesliste auf
delix
Vorstandsvorsitzender


Dabei seit: 18.05.2008
Beiträge: 102
Zuhause (1.1): Deli Linux 0.8.0
Zuhause (1.2): SuSE 8.1
Zuhause (1.3): Deli 0.7.2

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

also, an zu wenig Speicher wird's kaum liegen......
Ich vermute mal ganz stark, auch nicht an dem classpath Programm selbst.

Ich tippe jetz einfach mal, dass der Compiler den Speicher wegen einer falschen Konfiguration oder sowas zum Überlaufen bringt. Ich würde es mit einem anderen Compiler oder zumindest einer anderen Versionsnummer probieren --- aber das ist nur mal so geraten

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von delix: 06.01.2010 20:08.

06.01.2010 20:05 delix ist offline E-Mail an delix senden Beiträge von delix suchen Nehmen Sie delix in Ihre Freundesliste auf
The-Collar
Seepferdchen


Dabei seit: 05.01.2010
Beiträge: 4
Zuhause (1.1): openSUSE 11.1
Zuhause (1.2): Ubuntu 9.10

Themenstarter Thema begonnen von The-Collar
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo!

Danke für den Tip delix!

Ich hab mal ein wenig rumexperimentiert mit den Java-Compilern auf meinem Rechner.

Wenn ich ecj runter mach und nur noch gcc-java und gcc43-java drauf ist, dann startet nach der Eingabe von configure und make ein Java-Compiler mit dem Befehl gcj. Daraufhin ist nichts mehr mit Speicherfehlern wie er noch bei ecj auftrat. Stattdessen hab ich jetzt folgendes (auszuweise nur die letzten Meldungen)

Zitat:

/targets/classpath-0.98/lib/../vm/reference/sun/reflect/misc/ReflectUtil.ja
va:90: warning: Class is a raw type. References to generic type Class<T> should be parameterized
Class declarer,
^^^^^

/targets/classpath-0.98/lib/../vm/reference/sun/reflect/misc/ReflectUtil.ja
va:103: warning: Type safety: The methodisAssignableFrom(Class) belongs to the raw type Class. References to generic type Class<T> should be parameterized
&& declarer.isAssignableFrom(caller))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

11510 problems (7 errors, 11503 warnings)
make[1]: *** [compile-classes] Fehler 1
make[1]: Leaving directory `/targets/classpath-0.98/lib'
make: *** [all-recursive] Fehler 1


Leider kann ich hier nicht die ganzen Fehlermeldungen posten - nicht mal das Konsolenfenster zeigt mir noch alle an weil es viel zu viele sind! Jedoch sind die, die ich noch sehe in etwa so wie die gezeigten ("XXX is a raw type ...")!

Anderer Versuch: Pakete gcc-java, gcc43-java, java-1_6_0-openjdk und java-1_6_0-openjdk-devel sind drauf. configure ausgeführt und make läuft jetzt mit dem Kompiler javac durch, d.h. erst kommen Fehler von wegen "unchecked conversion", "unchecked cast", "unchecked ..." das geht so eine weile, dann beginnt er zu kompilieren bis alles hier fehlschlägt:
Zitat:

/usr/local/LxNETES-3/arm-linux/bin/arm-linux-gcc -DHAVE_CONFIG_H -I. -I../../include -I../../include -I../../native/jni/classpath -I../../native/jni/native-lib -I/usr/local/LxNETES-3/arm-linux/include -MT jawt.lo -MD -MP -MF .deps/jawt.Tpo -c jawt.c -fPIC -DPIC -o .libs/jawt.o In file included from jawt.c:41:
../../include/jawt_md.h:44:22: X11/Xlib.h: No such file or directory In file included from jawt.c:41:
../../include/jawt_md.h:53: error: parse error before "Drawable"
../../include/jawt_md.h:53: warning: no semicolon at end of struct or union
../../include/jawt_md.h:54: warning: data definition has no type or storage class
../../include/jawt_md.h:55: error: parse error before "visualID"
../../include/jawt_md.h:55: warning: data definition has no type or storage class
../../include/jawt_md.h:56: error: parse error before "colormapID"
../../include/jawt_md.h:56: warning: data definition has no type or storage class
../../include/jawt_md.h:59: error: parse error before '}' token In file included from jawt.c:42:
../../native/jni/classpath/classpath_jawt.h:49:22: X11/Xlib.h: No such file or directory In file included from jawt.c:42:
../../native/jni/classpath/classpath_jawt.h:54: error: parse error before '*' token
../../native/jni/classpath/classpath_jawt.h:54: warning: data definition has no type or storage class
../../native/jni/classpath/classpath_jawt.h:55: error: parse error before classpath_jawt_get_drawable"
../../native/jni/classpath/classpath_jawt.h:55: warning: data definition has no type or storage class
../../native/jni/classpath/classpath_jawt.h:56: error: parse error before "classpath_jawt_get_visualID"
../../native/jni/classpath/classpath_jawt.h:56: warning: data definition has no type or storage class
jawt.c: In function `_Jv_GetDrawingSurfaceInfo':
jawt.c:106: error: invalid application of `sizeof' to an incomplete type
jawt.c:113: error: dereferencing pointer to incomplete type
jawt.c:115: error: dereferencing pointer to incomplete type
jawt.c:117: error: dereferencing pointer to incomplete type
jawt.c:119: error: dereferencing pointer to incomplete type
jawt.c: In function `_Jv_FreeDrawingSurfaceInfo':
jawt.c:138: error: dereferencing pointer to incomplete type
jawt.c:139: error: dereferencing pointer to incomplete type
jawt.c:140: error: dereferencing pointer to incomplete type
make[2]: *** [jawt.lo] Fehler 1
make[2]: Leaving directory `/targets/classpath-0.98/native/jawt'
make[1]: *** [all-recursive] Fehler 1
make[1]: Leaving directory `/targets/classpath-0.98/native'
make: *** [all-recursive] Fehler 1


Danach hab ich den ecj und ecj-bootstrap wieder hinzugefügt und nochmal configure und make gestartet. Jetzt ist das ganz und gar komisch!! Es wird der Kompiler ecj gestartet und vorher gabs hier ja nen Speicherfehler - jetzt aber nicht mehr! Stattdessen das hier:

Zitat:

2995. WARNING in ../external/relaxngDatatype/org/relaxng/datatype/helpers/DatatypeLibraryLoa
der.java (at line 78)
private class ProviderEnumeration implements Enumeration {
^^^^^^^^^^^
Enumeration is a raw type. References to generic type Enumeration<E> should be parameterized
----------
2996. WARNING in ../external/relaxngDatatype/org/relaxng/datatype/helpers/DatatypeLibraryLoa
der.java (at line 95)
private static class Singleton implements Enumeration {
^^^^^^^^^^^
Enumeration is a raw type. References to generic type Enumeration<E> should be parameterized
----------
2996 problems (2 errors, 2994 warnings)make[1]: *** [compile-classes] Fehler 255
make[1]: Leaving directory `/targets/classpath-0.98/lib'
make: *** [all-recursive] Fehler 1


Sooo jetzt bin ich leider nicht wirklich weiter gekommen - nur die Art und Anzahl der Fehler hat sich verändert! Beleidigt
Da ich mich mit Java und den Fehlern überhaupt nicht auskenne und googeln bisher nix brauchbares gebracht hat bin ich ratlos!

Ahnungslos Ahnungslos Ahnungslos
07.01.2010 13:50 The-Collar ist offline E-Mail an The-Collar senden Beiträge von The-Collar suchen Nehmen Sie The-Collar in Ihre Freundesliste auf
delix
Vorstandsvorsitzender


Dabei seit: 18.05.2008
Beiträge: 102
Zuhause (1.1): Deli Linux 0.8.0
Zuhause (1.2): SuSE 8.1
Zuhause (1.3): Deli 0.7.2

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

das schaut doch schon mal ganz gut aus....
Mit Java kenn ich mich nicht aus und kann dir da deshalb nicht weiterhelfen.

Für mich sieht das ganze aber so aus, als ob da einige Bibliotheken und/oder Headerdateien bei deiner Installation fehlen. Ich würde mir gaaaaanz genau den Output des ./configure Befehls ansehen.

Generell gilt aus meiner Sicht :
zumindest für's erste alle "warnings" ignorieren und sich auf die tatsächlichen "Errors" konzentrieren.

Weiterhin viel Erfolg !

Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von delix: 07.01.2010 17:18.

07.01.2010 17:14 delix ist offline E-Mail an delix senden Beiträge von delix suchen Nehmen Sie delix in Ihre Freundesliste auf
The-Collar
Seepferdchen


Dabei seit: 05.01.2010
Beiträge: 4
Zuhause (1.1): openSUSE 11.1
Zuhause (1.2): Ubuntu 9.10

Themenstarter Thema begonnen von The-Collar
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hmm,

also auf der GNU Classpath Website wird der gcj zum kompilieren empfohlen - also poste ich mal die Fehler die bei dessen Verwendung bei mir auftreten. Die anderen Kompiler lasse ich erstmal weg!
Falls jemand was mit den Meldungen anfangen kann (sind jetzt nur die Errors, ohne Warnings) wäre ich über einen Tip sehr dankbar! Andernfalls muss ich mal direkt in nem Java-Forum nachfragen!

Zitat:

../javax/management/NotificationBroadcasterSupport.java:221: error: Type mismatch: cannot convert from Object to MBeanNotificationInfo[]
return info.clone();

../java/util/concurrent/CopyOnWriteArrayList.java:150: error: Type mismatch: cannot convert from Object to E[]
data = array.clone();

../java/util/concurrent/CopyOnWriteArrayList.java:367: error: Type mismatch: cannot convert from Object to E[]
E[] newData = data.clone();

../java/util/EnumMap.java:401: error: Type mismatch: cannot convert from Object to V[]
result.store = store.clone();

../gnu/java/lang/reflect/GenericSignatureParser.java:78: error: Type mismatch: cannot convert from Object to Type[]
return bounds.clone();

../gnu/java/lang/reflect/GenericSignatureParser.java:157: error: Type mismatch: cannot convert from Object to Type[]
return typeArgs.clone();

../external/jsr166/java/util/ArrayDeque.java:790: error: Type mismatch: cannot convert from Object to E[]
result.elements = elements.clone();



Am Ende erscheint diese Meldung hier:
Zitat:

11510 problems (7 errors, 11503 warnings)
make[1]: *** [compile-classes] Fehler 1
make[1]: Leaving directory `/targets/classpath-0.98/lib'
make: *** [all-recursive] Fehler 1


Mfg The-Collar
11.01.2010 14:08 The-Collar ist offline E-Mail an The-Collar senden Beiträge von The-Collar suchen Nehmen Sie The-Collar in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Linux Forum | www.Linux-Web.de | » Distributionsunspezifisches » Kompilieren » SuSE GNU Classpath 0.98 kompilieren

Views heute: 15.040 | Views gestern: 12.343 | Views gesamt: 67.869.342

 | Design © by RsHost.de
Code-, Style- & Templateanpasungen © by Sigma | Impressum


Ubuntu Forum -  KDE Forum -  Linux-Onlineshop -  Linux Fanartikel Shop
Slackware Forum -  QT Forum -  KDE Forum -  Gentoo Forum -  Drucker

Usenet - baby erstausstattung - Branchenbuch Portugal - Arthrose 
sportliches linux - free sms kostenlos - Branchenbuch - Hotelbewertungen Türkei 
Stadtportal - Kochrezepte - Skiurlaub - Winterurlaub - Seitensprung