Java:运行Processing 3.2.1的Raspberry Pi出现不满意的链接错误
每当我从OpenKinect Kinect v1示例点云运行示例代码时,就会出现此错误Java:运行Processing 3.2.1的Raspberry Pi出现不满意的链接错误,java,processing,openkinect,archlinux-arm,libfreenect2,Java,Processing,Openkinect,Archlinux Arm,Libfreenect2,每当我从OpenKinect Kinect v1示例点云运行示例代码时,就会出现此错误 Unsatisfied link error: Unable to load library 'freenect': Native library (linux-arm/libfreenect.so) not found in resource path. A library relies on native code that's not available. OpenKinect库是专为ARM Li
Unsatisfied link error: Unable to load library 'freenect': Native library (linux-arm/libfreenect.so) not found in resource path.
A library relies on native code that's not available.
OpenKinect库是专为ARM Linux体系结构设计的,可以找到。基本的问题是,我认为它无法正确地找到libfreenect.so库,即使库中有libfreenect.so库。我想它不在这条路上
请参阅下面正在运行的示例代码(我认为是导入库freenect.*导致了问题):
//丹尼尔·希夫曼
//Kinect点云示例
// https://github.com/shiffman/OpenKinect-for-Processing
// http://shiffman.net/p5/kinect/
导入org.openkinect.freenect.*;
导入org.openkinect.processing.*;
//Kinect库对象
Kinect-Kinect;
//旋转角度
浮点数a=0;
//我们将使用一个查找表,这样我们就不必一遍又一遍地重复计算
float[]depthLookUp=新的float[2048];
无效设置(){
//P3D渲染
尺寸(800600,P3D);
kinect=新的kinect(本);
kinect.initDepth();
//所有可能深度值的查找表(0-2047)
for(int i=0;i
编辑 下面是我得到的图片:
我不知道如何处理
。但下面的内容应该有助于解决问题
要获取当前的java.library.path
设置,可以使用
System.out.println(System.getProperty("java.library.path"));
在命令行上指定它的步骤
java -Djava.library.path=/your/additional/directory
库必须位于目录中
/your/additional/directory/linux-arm/libfreenect.so
如何在处理中指定此属性我无法回答。但是你现在应该可以搜索它了
编辑:如果输出为/usr/java/packages/lib/arm:/lib:/usr/lib
,则可以将库存储为
/usr/lib/linux-arm/libfreenect.so
因此,这是一个比我想象的更简单的修复(不是总是吗?),所以我不得不去我的/home/pi/sketchbook/libraries/
删除任何现有的openKinect库。然后下载专门为Raspberry Pi armv6hf板制作的openKinect库zip文件,并将其解压缩到/home/Pi/sketchbook/libraries/
中。然后重新启动处理,打开示例,然后找到库。感谢George Profenza的输入。如何调用代码以及如何设置属性java.library.path
?在处理时,我只需单击run按钮,它就会为我运行它。能够成功查找并导入org.openkinect.processing.*
但在导入Kinect的freenect库驱动程序时导入org.openkinect.freenect.*代码>它给出了该错误。我需要做什么才能看到我的java.library.path
设置在哪里?您是否有openkinect\u处理/library/v1/linux-armv6hf/libfreenect.so
?如果是这样,您是否可以尝试将其复制/移动到openkinect\u processing/library/v1/linux arm/libfreenect.so
,重新启动处理,然后尝试再次运行草图?在我的/Downloads/
文件夹中,我有openkinect\u Processing/library/v1/linux-armv6hf/libfreenect。因此,我从上面的链接下载的
应该适用于linux arm板。你是说我应该将项目放在那里,还是复制文件libfreenect.so
并将其放在Processing的库文件夹中?是的,请:/home/pi/sketchbook/libraries
。如果可以的话请告诉我谢谢你的澄清!我将很快尝试并通知您。我的输出是:/usr/java/packages/lib/arm:/lib:/usr/lib
,因此我必须将/linux arm/libfreenect.So
放在任何java库路径中?我尝试将/linux arm/libfreenect.So
放在我的/lib
文件夹中,但它不会复制。我将尝试将它放在/usr/lib
中,并尽快让您知道它是否有效。
/usr/lib/linux-arm/libfreenect.so