java上的libpd未满足链接错误

java上的libpd未满足链接错误,java,libpd,Java,Libpd,我第一次尝试将libpd与java结合使用。我使用的IDE是NetBeans。我正在使用libpd。 运行代码时,我得到一个java.lang.UnsatifiedLink错误。在某个时刻,它说: 找不到依赖库 我看到一个类似的问题在Android上得到了回答,但在Java上没有 编辑:这是完整的错误消息: 线程“main”java.lang.UnsatifiedLinkError中出现异常: C:\Users\jaiserpe\AppData\Local\Temp\pdnative714139

我第一次尝试将
libpd
与java结合使用。我使用的IDE是NetBeans。我正在使用libpd。 运行代码时,我得到一个java.lang.UnsatifiedLink错误。在某个时刻,它说:

找不到依赖库

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

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

线程“main”java.lang.UnsatifiedLinkError中出现异常: C:\Users\jaiserpe\AppData\Local\Temp\pdnative7141399841793639340.dll: 在上找不到依赖库 java.lang.ClassLoader$NativeLibrary.load(本机方法)位于 loadLibrary0(ClassLoader.java:1938)位于 loadLibrary(ClassLoader.java:1821)位于 位于的java.lang.Runtime.load0(Runtime.java:809) java.lang.System.load(System.java:1086)位于 org.puredata.core.NativeLoader.loadLibraryFromJar(NativeLoader.java:121) 位于org.puredata.core.NativeLoader.loadLibrary(NativeLoader.java:97) 位于org.puredata.core.PdBase.(PdBase.java:59) holamundo.holamundo.main(holamundo.java:26) C:\Users\jaiserpe\AppData\Local\NetBeans\Cache\8.1\executor snippets\run.xml:53: Java返回:1生成失败(总时间:0秒)


您似乎缺少
libpd
的依赖库

您可以使用检查丢失的内容


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

您似乎缺少
libpd
的依赖库

您可以使用检查丢失的内容


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

这些DLL是使用MinGW构建的。使用此处的技术,这些构建所需的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可能对您有用


祝你好运。

那些DLL是用MinGW构建的。使用此处的技术,这些构建所需的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可能对您有用


祝你好运。

一本关于libpd的书说:“完全没有依赖性意味着只要有了C编译器就可以构建libpd”。但是,一旦构建完成,运行时似乎存在依赖关系……基于您的错误,JVM似乎无法加载依赖关系,而不管书中怎么说。你在评论这件事之前试过Dedency walker吗?我使用DependencyWalker分析了错误中出现的dll,它是每次运行Java程序时在Temp文件夹中生成的dll。分析说:“错误:至少找不到一个必需的隐式或转发依赖项。”具体来说,缺少9个dll。一本关于libpd的书说:“完全没有依赖项意味着一旦有了C编译器,就可以构建libpd”。但是,一旦构建完成,运行时似乎存在依赖关系……基于您的错误,JVM似乎无法加载依赖关系,而不管书中怎么说。你在评论这件事之前试过Dedency walker吗?我使用DependencyWalker分析了错误中出现的dll,它是每次运行Java程序时在Temp文件夹中生成的dll。分析说:“错误:至少找不到一个必需的隐式或转发依赖项。”具体来说,9个dll丢失可能是因为缺少mingw运行时dll。那些图书馆很旧。你最好还是自己再编译一次。可能是缺少了mingw运行时DLL。那些图书馆很旧。你最好还是自己再编译一遍。