2016-04-11 46 views
-2

Linux (x64) makinesinde yüklü netbeans kullanıyorum. C kodu kütüphane olarak kullandığı bir java kodu yazdım.undefined sembolü alma: netbeans'de jni anahtarında

ben doğru o/p alıyorum C kod çalıştırmasına ama java kodu çalıştırdığınızda ben aşağıdaki gibi hata alıyorum ne zaman başlık dosyasına extern olarak değişken bildirdikten C kodunda

:

Exception in thread "main" java.lang.UnsatisfiedLinkError: /home/pacewisdom-h34/NetBeansProjects/NetbeansJava/desJavaLib/dist/DesJavaLib.so: /home/pacewisdom-h34/NetBeansProjects/NetbeansJava/desJavaLib/dist/DesJavaLib.so: undefined symbol: key 
    at java.lang.ClassLoader$NativeLibrary.load(Native Method) 
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1938) 
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1821) 
    at java.lang.Runtime.load0(Runtime.java:809) 
    at java.lang.System.load(System.java:1086) 
    at desjava.DesJava.<clinit>(DesJava.java:10) 
/home/pacewisdom-h34/.cache/netbeans/8.1/executor-snippets/run.xml:53: Java returned: 1 
BUILD FAILED (total time: 0 seconds) 

key başlık dosyasında bir extern olarak bildirilmiştir, ancak onun verilme hatası. Yığın Taşması'nda% 30 benzer sorular için çözüm gördüm. Değişkenini C kodunda stajyer olarak yeniden tanımlamaktan bahsettiler. Ama durmadan koşmaya devam ediyor.

cevap

0

key bir extern

olarak tanımlanır Hayır, bir extern olarak ilan ve yerde tanımlanmamış olduğunu. Olması gerek.

+0

U, c kodunda tanımlanmalıdır. –