Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    JNI undefined symbol: __gxx_personality_v0

    Allora il problema è il seguente. Sto cercando di far interagire una libreria in c con java tramite JNI.
    Se da java chiamo native CallMethod().. ; creo il file .h con javah e implemento il file.c non c'è problema.. Se però creo un file .cpp ed effettuo la stessa cosa (accorto del fatto che in c++ non devo mettere (*env)->method(env,..) ma solo env->method(param)) La creazione della libreria fa a buon fine. Ma quando lancio in java la classe un eccezione di UnsatisfiedLinkError undefined symbol: __gxx_personality_v0. Che cosa può essere? I parametri di compilazione sono i seguenti:
    gcc -o libnativelib.so -shared -Wl,-soname,libnative.so -I/usr/lib/java/include/ -I/usr/lib/java/include/linux nativelib.cpp -static -lc
    Il corpo della librearia è veramente stupido
    JNIEXPORT jstring JNICALL Java_Esercizio1_caricaStringa
    (JNIEnv * env, jobject jobj)
    {


    //char string[20]={"ciao ciccio"};

    jstring str = env->NewStringUTF("ciccio");

    //memcpy(string,"coglione",6);

    return (str);
    }
    Qualcuno mi può aiutare?

  2. #2
    un idea che mi viene in mente è provare a linkare con c++ al posto di gcc

    c++ -o libnativelib.so -shared -Wl,-soname,libnative.so -I/usr/lib/java/include/ -I/usr/lib/java/include/linux nativelib.cpp -static -lc

  3. #3

    Sono da mettere in galera.

    Grazie funziona. Sono nero perchè prima ho provato diverse combinazioni tra gcc c++ g++ ma tra un errore e l'altro non sono riuscito a compilarlo.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.