andreypdr / simple-openni

Automatically exported from code.google.com/p/simple-openni
0 stars 0 forks source link

libboost_system.so.1.54.0: cannot open shared object file: No such file or directory (linux64) [WITH WORKAROUND/SOLUTION] #79

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. Follow SimpleOpenNI installation instructions for Linux 
(https://code.google.com/p/simple-openni/wiki/Installation)

2. Run any SimpleOpenNI example sketch.

What is the expected output? What do you see instead?
Expected output: sketch loads library and runs.
Actual output: sketch does not run, giving the following error:

Can't load SimpleOpenNI library (libSimpleOpenNI64.so) : 
java.lang.UnsatisfiedLinkError: 
/home/dario/sketchbook/libraries/SimpleOpenNI/library/libSimpleOpenNI64.so: 
libboost_system.so.1.54.0: cannot open shared object file: No such file or 
directory
Verify if you installed SimpleOpenNI correctly.
http://code.google.com/p/simple-openni/wiki/Installation
A library relies on native code that's not available.
Or only works properly when the sketch is run as a 32-bit  application.

What version of the product are you using? On what operating system?
SimpleOpenNI 1.96 on Linux Mint 15, 64bit

Please provide any additional information below.
I found a quick workaround with a colleague.
Apparently, the libboost_system.so.1.54.0 is missing from the 
../library/linux64/ folder.
For a quick test, we copied a previous version of the file (1.53, the most 
recent one I had available on my system) inside the ../library/linux64/ folder, 
changing its name in order to match the required 1.54 version file:

cp /usr/lib/libboost_system.so.1.53.0 
/home/dario/sketchbook/libraries/SimpleOpenNI/library/linux64/libboost_system.so
.1.54.0

Even if the version is not the right one (1.53 vs 1.54), sketches now seem to 
work :)

I noticed that inside the ../library/linux64/ folder there is a 
libboost_filesystem.so.1.54.0 file. 
If I rename/remove that file, while keeping the added libboost_system.so.1.54.0 
file in the folder, the library still works.
Is it possible that libboost_filesystem.so.1.54.0 is included instead of 
libboost_system.so.1.54.0?

Original issue reported on code.google.com by dar...@gmail.com on 11 Oct 2013 at 12:50

GoogleCodeExporter commented 8 years ago
I have this exact problem, on Ubuntu 13.10, after installing the OpenNI device 
rules, then installing SimpleOpenNI through Processing 2.0.3's installation 
process.

I also tried the workaround somebody suggested in this thread:
https://groups.google.com/forum/#!msg/simple-openni-discuss/P32ylJdsjho/4KplLWBw
P3AJ

Where you rename libboost_filesystem* to libboost_system*, but this gave me a 
different error, about an "undefined symbol: 
_ZN5boost6system15system_categoryEv". So I don't think that's the solution.

Any other ideas?

Original comment by konklone on 27 Oct 2013 at 9:39

GoogleCodeExporter commented 8 years ago
For more information -- I tried the other, first workaround in that same link, 
which is to install libboost systemwide and then copy (in my case, symlink) the 
system lib to the SimpleOpenNI linux64 dir in my sketchbook dir:

ln -s /usr/lib/x86_64-linux-gnu/libboost_system.so.1.53.0 
libboost_system.so.1.54.0

And this got me through. Now I just get "what() Cannot open Kinect", which I 
suspect is a separate problem.

Original comment by konklone on 27 Oct 2013 at 10:03

GoogleCodeExporter commented 8 years ago
...and finally, for anyone watching -- I was able to fix the "what() Cannot 
open Kinect" error by taking this file:

https://raw.github.com/OpenKinect/libfreenect/master/platform/linux/udev/51-kine
ct.rules

And putting it into "/etc/udev/rules.d/". I had *already* done the Simple 
OpenNI extra Linux instructions 
(https://code.google.com/p/simple-openni/wiki/Installation#Linux) that copy 
557-primesense-usb.rules to the same directory. That wasn't enough.

Original comment by konklone on 27 Oct 2013 at 10:09

GoogleCodeExporter commented 8 years ago
I can confirm, the fixes were: 

1. download and copy the file in 
~/sketchbook/libraries/SimpleOpenNI/library/linux64
http://rpmfind.net/linux/rpm2html/search.php?query=libboost_system.so.1.54.0%28%
29%2864bit%29

2. copy the file to /etc/udev
https://raw.github.com/OpenKinect/libfreenect/master/platform/linux/udev/51-kine
ct.rules

After these steps, I tested
- Kinect works OK 
- Xtion doesn't work, gives the error:
Can't init SimpleOpenNI, maybe the camera is not connected!
which is probably caused by the OpenNI2 freenect driver:
https://github.com/piedar/OpenNI2-FreenectDriver
If you find it more, please let me know

Thanks

Original comment by Alexandr...@gmail.com on 4 Nov 2013 at 1:29

GoogleCodeExporter commented 8 years ago
After trying to resolve this issue for 2 days,

installing libboost_system.so.1.54.0 solved the issue on Fedora 18 x64 .

Thanks a lot.

Original comment by dgcoffee...@gmail.com on 6 Nov 2013 at 9:07

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
i solved the problem by downloading the boost library from boost.org. 
I extracted the files, run the ./bootstrap.sh and the ./b2 and when the 
installing was done i copied from 

/boost_1_54_0/bin.v2/libs/system/build/gcc-4.7/release/threading-multi

the libboost_system.so.1.54.0 to the directory
/sketchbook/libraries/SimpleOpenNI/library/linux64

i had already deleted the previous one named libboost_filesystem.so.1.54.0

i hope it works for everyone

Original comment by ds...@hotmail.gr on 18 Nov 2013 at 10:34