Thread: Tools CoolReader 3 on Kindle
View Single Post
Old 06-10-2012, 07:54 AM   #124
knc1
Embedded Cheerleader
knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.
 
knc1's Avatar
 
Posts: 6,493
Karma: 5840130
Join Date: Feb 2012
Device: Too many.
Arrow

Quote:
Originally Posted by tstngry View Post
When I tried to launch it manually I recieve the following error:

[root@kindle cr3]# ./cr3
./cr3: error while loading shared libraries: libjpeg.so.8: cannot open shared object file: No such file or directory

I checked to make sure that file (libjpeg.so.8) was present and it was, I even tried copying it into the directory right next to the cr3 executable, but to no avail. If anyone has any tips or suggestions or has expirience with this problem I would greatly appreciate any advice. Thank you.
A bit of background knowledge about the above...

The infrastructure that supports dynamic libraries on Windows (*.dll) and Linux (*.so) is different.

The Windows system __will__ look in the same directory as the executable was loaded from before looking in system defined places.
So under Windows, the "copying it into the directory right next to the cr3 executable" would be expected to solve this "not found" error.

The Linux (any *nix) system looks in a list of locations (never including the locations that executables are kept for security reasons).
That list is maintained at the "end user" level (or by the installation application used by the "end user").

That list is /etc/ld.so.conf
Which in turn may "include" all the configuration files in a directory, typically /etc/ld.so.conf.d/*.conf

The developer's choices when installing a new dynamic library -
put it in one of the directories already listed in one of the config lists; or
add the directory where it was put to the config list(s).

The ld.so loader gets its information from a binary cache of the list information, so ...
After the above choice/action is taken - the cache must be updated.
run: ldconfig command as user 'root'.
You may have to make the trusted directories read/write (mntroot rw) for the ldconfig command to complete depending on the options it is run with.

Ref:
man ldconfig
or google: man ldconfig

These requirements of the dynamic library loader are usually taken care of by the appliction's installer.

Last edited by knc1; 06-10-2012 at 07:57 AM.
knc1 is offline   Reply With Quote