Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Ok, let's face it, your question is vague...perhaps due to the nature of the subject, I think.
SO files are drivers, they are needed by executable files, that have BIN as extension. Let's take an example, the java plugin is a file that is called "libjaveplugin_oji.so" and is needed by firefox.bin to run java.
Does executable file contains the precise path to SO file?
You can control that at link time.
Quote:
Should it be compiled with precise knowing of SO file location?
That depends on how you want to use the executable. Typically not. Typically you want the environment at load time to determine search rules for the .so files.
Quote:
Or it refers SO file somehow else?
There are a few search methods. I forget the details of most of the search methods. The simplest to understand and manipulate is the LD_LIBRARY_PATH environment variable.
You can use the ldd command to find out what name, including path if any, is stored for each .so in the executable and what full path the ldd program thinks that resolves to in the current environment.
You can use the ldd command to find out what name, including path if any, is stored for each .so in the executable and what full path the ldd program thinks that resolves to in the current environment.
So, if ldd reports .so file with no path, then it means that automatic search should be activated at load time? Or it means current directory?
The thread has been answered above so I'll skip that. I'll only add...
Quote:
Originally Posted by linusr@flanders
SO files are drivers,
Define "driver". Generally, a "driver" is a piece of software (a program if you wish) that lets your OS and the rest of the programs interact with a hardware device, or some other kind of device (even virtual ones). In any case, it's a software that's often close to the kernel of your OS.
.so files are what 'so' stands for: "shared object" files. They contain libraries of code that can be reused by any other program. They are not device drivers (that'd be '.ko' files, which are kernel modules).
Quote:
they are needed by executable files, that have BIN as extension.
In *nix, the so-called 'executable files' do not have any particular extension. POSIX based OSes and fs's support a +x attribute which is what defines whether a given file is executable or not.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.