Exception 使用UsbScope HS4的覆盆子Pi出现不满意的链接错误

Exception 使用UsbScope HS4的覆盆子Pi出现不满意的链接错误,exception,native,raspberry-pi,jna,unsatisfiedlinkerror,Exception,Native,Raspberry Pi,Jna,Unsatisfiedlinkerror,我在一个树莓Pi上做一个“usbscopode”——一个树莓Pi,它通过一个插入式Usb示波器收集数据。Usb示波器是tiepie的HS4: 我在我的windows pc上编程了第一步,并使之达到了能够获取数据、设置和一切的程度。所以我决定切换到arm库。但现在我似乎在我的覆盆子圆周率上与jna有问题。当我试图加载库时,这个非常小的程序崩溃了。我加载库的代码如下所示: LibTiePieHS4Library INSTANCE = (LibTiePieHS4Library) Native.load

我在一个树莓Pi上做一个“usbscopode”——一个树莓Pi,它通过一个插入式Usb示波器收集数据。Usb示波器是tiepie的HS4:

我在我的windows pc上编程了第一步,并使之达到了能够获取数据、设置和一切的程度。所以我决定切换到arm库。但现在我似乎在我的覆盆子圆周率上与jna有问题。当我试图加载库时,这个非常小的程序崩溃了。我加载库的代码如下所示:

LibTiePieHS4Library INSTANCE = (LibTiePieHS4Library) Native.loadLibrary((Platform.isARM()? "libtiepie" : "c"), LibTiePieHS4Library.class);
它几乎与我在windows下使用的版本相同,但在本例中,libtiepie是一个“.so”文件,而不是dll

我从我的代码中收到以下错误消息:

Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/jna-3577/jna3799405475131998919.tmp: /tmp/jna-3577/jna3799405475131998919.tmp: cannot open shared object file: No such file or directory
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1939)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1864)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1825)
    at java.lang.Runtime.load0(Runtime.java:792)
    at java.lang.System.load(System.java:1059)
    at com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:761)
    at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:736)
    at com.sun.jna.Native.<clinit>(Native.java:131)
    at Ftest_USBScope.controller.LibTiePieHS4Library.<clinit>(LibTiePieHS4Library.java:17)
    at Ftest_USBScope.controller.HS4.<init>(HS4.java:48)
    at Ftest_USBScope.controller.ScopeNodeManager.initializeScopes(ScopeNodeManager.java:85)
    at Ftest_USBScope.controller.ScopeNodeManager.<init>(ScopeNodeManager.java:43)
    at Ftest_USBScope.main.Main_USBScope.main(Main_USBScope.java:14)
线程“main”java.lang.unsatifiedlinkerror:/tmp/jna-3577/jna379405475131998919.tmp:/tmp/jna-3577/jna379405475131998919.tmp:无法打开共享对象文件:没有这样的文件或目录 位于java.lang.ClassLoader$NativeLibrary.load(本机方法) 位于java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1939) 位于java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1864) 位于java.lang.ClassLoader.loadLibrary(ClassLoader.java:1825) 位于java.lang.Runtime.load0(Runtime.java:792) 位于java.lang.System.load(System.java:1059) 位于com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:761) 位于com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:736) 位于com.sun.jna.Native。(Native.java:131) 在Ftest_USBScope.controller.LibTiePieHS4Library.(LibTiePieHS4Library.java:17) 在Ftest_USBScope.controller.HS4.(HS4.java:48) 在Ftest_USBScope.controller.ScopeNodeManager.initializeScopes(ScopeNodeManager.java:85) 在Ftest_USBScope.controller.ScopeNodeManager。(ScopeNodeManager.java:43) 在Ftest_USBScope.main.main_USBScope.main(main_USBScope.java:14) 安装了R-Pi上的Jna,我按照tiepie中的安装步骤进行库安装

图书馆安装指南:

库API:

我希望有人能帮助我,如有必要,我很乐意提供更多细节


谢谢,soc

loadLibrary
需要库名,库名应该是不带
lib
前缀和
后缀的文件名。因此
后缀。在将libjnidspatch.so从jar文件解压到临时位置后,您的系统无法加载它。在解包位置检查该文件,以确定它是否缺少读取或执行权限,或者它是否取决于比您现有版本更新的glibc版本(
ldd
)。嘿@technomage,感谢您的快速响应!“libtiepie”中的lib属于文件名,它是他们的官方库。我试图为tmp位置提供所需的权限,但仍然没有任何权限,我将在访问internet后立即尝试更新R-pi。文件名为
libtiepie.so
,因此您需要使用“tiepie”。一旦超过第一个错误,您就会发现这一点。您还可以在
LD_LIBRARY_PATH
中安装libjnidispatch.so的linux arm版本。在嵌入式设备上,这实际上比让JNA在每次运行时解包一个临时文件更可取。