title: How do *.so files work, and where do they go in UNIX?
body: <p>I've recently been "compiling" python scripts into binary form for the purpose of internal distribution. I'm using the utility cx_freeze which, in it's default state, creates a directory with the primary binary executable in it as well as a bunch of binary *.so files. My understanding is that .so files are libraries, and they are obviously necessary to get the executable binary to function, but my question is how can I link stuff together so they don't all have to be in the same directory? Do I have to determine that at "compile time"? Is there a universal path variable that the executables will look in for libraries it might need, or is that path stated somewhere in the executable itself?</p>
  
  <p>Thanks in advance!</p>