java - JNI UnsatisfiedLinkError undefined symbol -


i trying load .so file (libinfexprparser.so) using jni. not have source code shared object. getting following error:

exception in thread "main" java.lang.unsatisfiedlinkerror:/home/tomcat/sahithi/exprparser/libinfexprparser.so: /home/tomcat/sahithi/exprparser/libinfexprparser.so: undefined symbol: _zn8iustringc1epkcm @ java.lang.classloader$nativelibrary.load(native method) @ java.lang.classloader.loadlibrary0(unknown source) @ java.lang.classloader.loadlibrary(unknown source) @ java.lang.runtime.loadlibrary0(unknown source)
@ java.lang.system.loadlibrary(unknown source) @ expressionparser.main.(main.java:20)

java code:

native void parseexpr();  static {     system.loadlibrary("infexprparser");     system.out.println("loaded expr parser"); }  public static void main(string[] args) {     main mainobj = new main().parseexpr();     } 

i using redhat linux 64 bit.

edit:

i ran following command list of dependent libraries:

[tomcat@zeus exprparser]$ readelf -d libinfexprparser.so  dynamic section @ offset 0xa048 contains 26 entries:   tag        type                         name/value  0x0000000000000001 (needed)             shared library: [libdl.so.2]  0x0000000000000001 (needed)             shared library: [libpthread.so.0]  0x0000000000000001 (needed)             shared library: [libstdc++.so.6]  0x0000000000000001 (needed)             shared library: [libm.so.6]  0x0000000000000001 (needed)             shared library: [libgcc_s.so.1]  0x0000000000000001 (needed)             shared library: [libc.so.6]  0x000000000000000c (init)               0x3ed8  0x000000000000000d (fini)               0x8628  0x0000000000000004 (hash)               0x158  0x000000006ffffef5 (gnu_hash)           0x658  0x0000000000000005 (strtab)             0x1cc8  0x0000000000000006 (symtab)             0xb40  0x000000000000000a (strsz)              4315 (bytes)  0x000000000000000b (syment)             24 (bytes)  0x0000000000000003 (pltgot)             0x20a420  0x0000000000000002 (pltrelsz)           1776 (bytes)  0x0000000000000014 (pltrel)             rela  0x0000000000000017 (jmprel)             0x37e8  0x0000000000000007 (rela)               0x2f90  0x0000000000000008 (relasz)             2136 (bytes)  0x0000000000000009 (relaent)            24 (bytes)  0x000000006ffffffe (verneed)            0x2f20  0x000000006fffffff (verneednum)         3  0x000000006ffffff0 (versym)             0x2da4  0x000000006ffffff9 (relacount)          26  0x0000000000000000 (null)               0x0 


out of 6 shared libraries, 5 present in these locations: /lib , /lib64
libstdc++.so.6 present in these locations: /usr/lib , /usr/lib64
don't know location searched dependent libraries. tried setting ld_library_path , executed jar follows:

$ export ld_library_path=/lib64:/usr/lib64 $ java -jar -djava.library.path=/home/tomcat/sahithi/exprparser:/lib64:/usr/lib64 expressionparser.jar  $ export ld_library_path=/lib:/usr/lib $ java -jar -djava.library.path=/home/tomcat/sahithi/exprparser:/lib:/usr/lib expressionparser.jar 

none of seemed work. got same error before. there else can try? thanks.

that library depends on other shared library isn't present, contains missing entry point.

review installation instructions.


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -