M
Marc80
Gast
Moin zusammen,
ich habe ein, wie ich finde, sehr spezielles Problem und ich glaube kaum, dass mir jemand aus dem Stehgreif dabei weiterhelfen kann, aber da ich ziemlich verzweifelt bin probier ich es trotzdem mal.
Folgendes Problem:
Ich habe vor, einen bereits vorhandenen minimalen Webserver (in Java programmiert) um SSL-Fähigkeit zu erweitern. Dies ist erstmal in Java das geringste Problem. Prinzipiell bin ich damit auch schon fertig und der Webserver läuft.
Allerdings soll der Webserver später nich auf einem PC laufen, sondern auf einem Embedded Board mit ARM-Prozessor. Für diesen gibt es einen Crosscompiler, er auf dem GCJ aufbaut und aus Java-Quellcode nativen Maschinencode produzieren kann.
Dieser Crosscompiler ist allerdings nur Java 1.2-kompatibel, so dass sämtliche SSL-Klassen fehlen. Dieses Problem will ich umgehen, indem ich die freie Klassenbibliothek Jessie verwende. Diese ist laut Entwickler auch GCJ-kompatibel.
Der Crosscompiler ist unter Cygwin intsalliert und funktioniert auch prinzipiell. Aber wenn ich mein Programm mit dem Befehl
übersetzen will erhalte ich folgende Fehlermeldung:
Das Kompilieren und das Assemblieren des Quelltextes funktioniert ohne Fehlermeldungen, aber wenn man kompilieren, assemblieren UND linken will (was für ein lauffähiges Programm natürlich vorraussetzung ist) erhalte ich diese Fehler.
Ach ja: Bevor ich die SSL-Erweiterungen eingebaut hatte ließ sich der Webserver mit dem Crosscompiler übersetzen.
Da das Programm sich ja eigentlich normal übersetzen lässt (zumindest mit einem normalen JDK) werde ich an dieser Stelle auch erstmal keinen Quellcode posten. Mich würde überhaupt erst einmal interessieren, wie ich diese Fehlermeldungen deuten kann und wie ich jetzt weiter bei der Fehleranalyse vorgehen kann.
Ich danke Euch auf jeden Fall schon mal im Vorraus!
Marc
ich habe ein, wie ich finde, sehr spezielles Problem und ich glaube kaum, dass mir jemand aus dem Stehgreif dabei weiterhelfen kann, aber da ich ziemlich verzweifelt bin probier ich es trotzdem mal.
Folgendes Problem:
Ich habe vor, einen bereits vorhandenen minimalen Webserver (in Java programmiert) um SSL-Fähigkeit zu erweitern. Dies ist erstmal in Java das geringste Problem. Prinzipiell bin ich damit auch schon fertig und der Webserver läuft.
Allerdings soll der Webserver später nich auf einem PC laufen, sondern auf einem Embedded Board mit ARM-Prozessor. Für diesen gibt es einen Crosscompiler, er auf dem GCJ aufbaut und aus Java-Quellcode nativen Maschinencode produzieren kann.
Dieser Crosscompiler ist allerdings nur Java 1.2-kompatibel, so dass sämtliche SSL-Klassen fehlen. Dieses Problem will ich umgehen, indem ich die freie Klassenbibliothek Jessie verwende. Diese ist laut Entwickler auch GCJ-kompatibel.
Der Crosscompiler ist unter Cygwin intsalliert und funktioniert auch prinzipiell. Aber wenn ich mein Programm mit dem Befehl
Code:
arm-linux-gcj -static --main=WebServer WebServer.java -o webs
Code:
/cygdrive/c/DOKUME~1/mheister/LOKALE~1/Temp/ccC5PASV.o(.text+0x3180): In functio
n `WebServer::main(JArray<java::lang::String*>*)':
WebServer.java: undefined reference to `javax::net::ssl::KeyManagerFactory::getI
nstance(java::lang::String*)'
/cygdrive/c/DOKUME~1/mheister/LOKALE~1/Temp/ccC5PASV.o(.text+0x31c0):WebServer.j
ava: undefined reference to `javax::net::ssl::KeyManagerFactory::init(java::secu
rity::KeyStore*, JArray<wchar_t>*)'
/cygdrive/c/DOKUME~1/mheister/LOKALE~1/Temp/ccC5PASV.o(.text+0x31cc):WebServer.j
ava: undefined reference to `javax::net::ssl::SSLContext::getInstance(java::lang
::String*)'
/cygdrive/c/DOKUME~1/mheister/LOKALE~1/Temp/ccC5PASV.o(.text+0x321c):WebServer.j
ava: undefined reference to `javax::net::ssl::KeyManagerFactory::getKeyManagers(
)'
/cygdrive/c/DOKUME~1/mheister/LOKALE~1/Temp/ccC5PASV.o(.text+0x3234):WebServer.j
ava: undefined reference to `javax::net::ssl::SSLContext::init(JArray<javax::net
::ssl::KeyManager*>*, JArray<javax::net::ssl::TrustManager*>*, java::security::S
ecureRandom*)'
/cygdrive/c/DOKUME~1/mheister/LOKALE~1/Temp/ccC5PASV.o(.text+0x325c):WebServer.j
ava: undefined reference to `javax::net::ssl::SSLContext::getServerSocketFactory
()'
/cygdrive/c/DOKUME~1/mheister/LOKALE~1/Temp/ccC5PASV.o(.text+0x3674):WebServer.j
ava: undefined reference to `javax::net::ssl::SSLServerSocket::class$'
collect2: ld returned 1 exit status
Ach ja: Bevor ich die SSL-Erweiterungen eingebaut hatte ließ sich der Webserver mit dem Crosscompiler übersetzen.
Da das Programm sich ja eigentlich normal übersetzen lässt (zumindest mit einem normalen JDK) werde ich an dieser Stelle auch erstmal keinen Quellcode posten. Mich würde überhaupt erst einmal interessieren, wie ich diese Fehlermeldungen deuten kann und wie ich jetzt weiter bei der Fehleranalyse vorgehen kann.
Ich danke Euch auf jeden Fall schon mal im Vorraus!
Marc