undefinierter Verweis auf 'JNI_CreateJavaVM' Linux

8

Ich versuche, mit der JNI-API vertraut zu werden, kann aber kein Beispiel-C ++ - Programm zum Kompilieren bekommen.

Hier ist der Befehl, den ich verwende, um zu kompilieren und darunter ist das Programm, das ich zu kompilieren versuche. Der Fehler, den ich bekomme, ist:

%Vor%

Kompilieren:

%Vor%

C ++:

%Vor%

Ich habe nach diesem Problem gesucht und jede Lösung ausprobiert, die ich gefunden habe, aber trotzdem bekomme ich den gleichen Fehler ... Jede Hilfe wird sehr geschätzt!

EDIT: Jonis Antwort unten funktioniert (abhängig von Ihrem Compiler). Falls jemand anderes dies findet: Wenn Sie die kompilierte Ausgabe ausführen, vergessen Sie nicht LD_LIBRARY_PATH = _path_to_your_libjvm.so_ oder es wird zur Laufzeit nicht gefunden.

%Vor%     
RBI 31.05.2013, 14:46
quelle

1 Antwort

18

Die Art, wie GCC Symbole findet, wurde vor kurzem geändert: jetzt werden die zu verknüpfenden Einheiten streng von links nach rechts abgearbeitet, und Verweise auf Bibliotheken ( -lYourLibrary ) werden stillschweigend ignoriert, wenn sie nichts in der Befehlszeile benötigen .

Um dies zu beheben, verschieben Sie -ljvm nach den Kompilierungseinheiten, die es verwenden, z. B. bis zum Ende der Befehlszeile:

%Vor%     
Joni 31.05.2013, 14:58
quelle

Tags und Links