链接多个库的JavaJNI

链接多个库的JavaJNI,java,c++,linux,java-native-interface,unsatisfiedlinkerror,Java,C++,Linux,Java Native Interface,Unsatisfiedlinkerror,我已经编写了一些代码来加载Java中的共享对象。以下是示例代码: public class helloworld { static { System.loadLibrary("calcJava"); } public static void main(String [] args) { System.out.println("Hello");

我已经编写了一些代码来加载Java中的共享对象。以下是示例代码:

public class helloworld
{
        static
        {
               System.loadLibrary("calcJava");
        }
        public static void main(String [] args)
        {
                System.out.println("Hello");
        }
}
共享对象“calcJava”进一步依赖于另一个共享对象。libMath.so

当我尝试运行这个程序时,它总是给我未满足的linkerror,带有dependent.so(libMath.so)中未定义的符号错误

在执行java程序之前,我要做的是:

1) 将LD_LIBRARY_PATH设置为.so

2) 设置jar文件的类路径

3) 使用“javahelloworld-Djava.library.path=/path/to/shared/object1:/path/to/shared/object2”运行java程序

有人能解释一下为什么我会出现不满意的链接错误吗

这是stacktrace

线程“main”java.lang.UnsatifiedLinkError:/path/to/libcalcJava.so:/path/to/libcalcJava.so中出现异常:未定义的符号:xxx\uxxx\uxxx\uxx 位于java.lang.ClassLoader$NativeLibrary.load(本机方法) 位于java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1938) 位于java.lang.ClassLoader.loadLibrary(ClassLoader.java:1854) 位于java.lang.Runtime.loadLibrary0(Runtime.java:870) 位于java.lang.System.loadLibrary(System.java:1122) 在helloworld。(helloworld.java:6)


谢谢

请添加堆栈跟踪。
System.loadLibrary(“Math”);
System.loadLibrary(“calcJava”);
前面缺少堆栈跟踪。在问题本身中添加了堆栈跟踪。@Schrieveslaach-我尝试过在calcJava之前加载数学库。但导致了相同的错误。