有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java上的libpd未满足链接错误

我第一次尝试将libpd与java结合使用。我使用的IDE是NetBeans。对于libpd,我使用these binary builds for Java。 当运行代码时,我得到一个java。lang.unsatifiedlinkerror。在某个时刻,它说:

Can't find dependent libraries

我看到一个类似的问题在Android上得到了回答,但在Java上没有

编辑:这是完整的错误消息:

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\jaiserpe\AppData\Local\Temp\pdnative7141399841793639340.dll: Can't find dependent libraries 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 org.puredata.core.NativeLoader.loadLibraryFromJar(NativeLoader.java:121) at org.puredata.core.NativeLoader.loadLibrary(NativeLoader.java:97) at org.puredata.core.PdBase.(PdBase.java:59) at holamundo.HolaMundo.main(HolaMundo.java:26) C:\Users\jaiserpe\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1 BUILD FAILED (total time: 0 seconds)


共 (2) 个答案

  1. # 1 楼答案

    似乎缺少libpd的依赖库

    您可以使用DepndencyWalker来检查缺少的内容

    如果您认为所有必需的库都存在,请确保它们对JVM可见,以便加载。有关在Windows here上加载DLL的详细信息

  2. # 2 楼答案

    那些DLL是用MinGW构建的。使用这里的技术http://comments.gmane.org/gmane.comp.gnu.mingw.user/38834这些构建所需的DLL是:

    $ x86_64-w64-mingw32-objdump  all-headers java-build/org/puredata/core/natives/windows/x86_64/pthreadGC2.dll | grep 'DLL Name'
        DLL Name: KERNEL32.dll
        DLL Name: msvcrt.dll
        DLL Name: WS2_32.dll
    $ x86_64-w64-mingw32-objdump  all-headers java-build/org/puredata/core/natives/windows/x86_64/pdnative.dll | grep 'DLL Name'
        DLL Name: ADVAPI32.dll
        DLL Name: KERNEL32.dll
        DLL Name: msvcrt.dll
        DLL Name: msvcrt.dll
        DLL Name: pthreadGC2.dll
        DLL Name: WS2_32.dll
    $ x86_64-w64-mingw32-objdump  all-headers java-build/org/puredata/core/natives/windows/x86/pdnative.dll | grep 'DLL Name'
        DLL Name: ADVAPI32.dll
        DLL Name: KERNEL32.dll
        DLL Name: msvcrt.dll
        DLL Name: msvcrt.dll
        DLL Name: pthreadGC2.dll
        DLL Name: WS2_32.dll
    $ x86_64-w64-mingw32-objdump  all-headers java-build/org/puredata/core/natives/windows/x86/pthreadGC2.dll | grep 'DLL Name'
        DLL Name: KERNEL32.dll
        DLL Name: msvcrt.dll
        DLL Name: WS2_32.dll
    

    如果系统中不再存在所有这些依赖项,或者这些依赖项已经过时,那么重新编译DLL可能对您有用

    祝你好运