Ich habe bereits über JNI geforscht, und ich denke, ich verstehe, wie es funktioniert, aber ich habe versucht, eine C-Funktion von einer anderen C-Funktion aufzurufen, die von JNI aufgerufen wird.Kann ich eine C-Funktion von einem C-Programm aufrufen, das von JNI aufgerufen wird?
Ich habe 2 .c
, HelloWorld und HelloWorld2 und ein Java-Programm, um HelloWorld aufzurufen. HelloWorld ruft gleichzeitig eine in HelloWold2 definierte Funktion auf, dies verursacht jedoch einen Fehler bei der Ausführung.
java: symbol lookup error: /home/hduser/Desktop/final2/libhello.so: undefined symbol: helloworld
Haben Sie überprüft LD_LIBRARY_PATH? –
Willkommen bei SO. Bitte sehen Sie sich [die Tour] (http://stackoverflow.com/tour) an. Sie können auch überprüfen, [Welche Themen kann ich fragen] (http://stackoverflow.com/help/on-topic) und [Wie man eine gute Frage stellen] (http://stackoverflow.com/help/ how-to-ask) und [Die perfekte Frage] (http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/), und wie man ein [Minimal, Complete und Überprüfbares Beispiel] (http://stackoverflow.com/help/mcve). Veröffentlichen Sie den Code, den Sie versucht haben, und die Fehler, die Sie erhalten haben. Sei so genau wie möglich, denn das führt zu besseren Antworten. –
Ich sehe nicht aus, als ob die zweite Funktion das Problem ist. Es schlägt bereits fehl, wenn versucht wird, irgendeinen C-Code von Java aus aufzurufen. Konnten Sie C-Code überhaupt von Java aus aufrufen? Bitte posten Sie Ihren Code. – Codo