On Mon, Sep 18, 2000 at 09:35:32AM -0400, Barry A. Warsaw wrote: > > >>>>> "TM" == Trent Mick <trentm@ActiveState.com> writes: > > TM> Duh, learning about LD_LIBRARY_PATH (set LD_LIBRARY_PATH to > TM> /usr/local/lib) and everything is hunky dory. I presumed that > TM> /usr/local/lib would be on the default search path for shared > TM> libraries. Bad assumption I guess. > > Also, look at the -R flag to ld. In my experience (primarily on > Solaris), any time you compiled with a -L flag you absolutely /had/ to > include a similar -R flag, otherwise you'd force all your users to set > LD_LIBRARY_PATH. > Thanks, Barry. Reading about -R led me to -rpath, which works for me. Here is the algorithm from the info docs: `-rpath-link DIR' When using ELF or SunOS, one shared library may require another. This happens when an `ld -shared' link includes a shared library as one of the input files. When the linker encounters such a dependency when doing a non-shared, non-relocateable link, it will automatically try to locate the required shared library and include it in the link, if it is not included explicitly. In such a case, the `-rpath-link' option specifies the first set of directories to search. The `-rpath-link' option may specify a sequence of directory names either by specifying a list of names separated by colons, or by appearing multiple times. The linker uses the following search paths to locate required shared libraries. 1. Any directories specified by `-rpath-link' options. 2. Any directories specified by `-rpath' options. The difference between `-rpath' and `-rpath-link' is that directories specified by `-rpath' options are included in the executable and used at runtime, whereas the `-rpath-link' option is only effective at link time. 3. On an ELF system, if the `-rpath' and `rpath-link' options were not used, search the contents of the environment variable `LD_RUN_PATH'. 4. On SunOS, if the `-rpath' option was not used, search any directories specified using `-L' options. 5. For a native linker, the contents of the environment variable `LD_LIBRARY_PATH'. 6. The default directories, normally `/lib' and `/usr/lib'. For the native ELF linker, as the last resort, the contents of /etc/ld.so.conf is used to build the set of directories to search. If the required shared library is not found, the linker will issue a warning and continue with the link. Trent -- Trent Mick TrentM@ActiveState.com
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4