07-11-2012
Quote:
Originally Posted by
bakunin
I wonder why it doesn't suffice to add the library and its path to the "LIBPATH" (or similar) environment variable, so that it is found when needed. I don't know if using softlinks instead has any chance of working, but it "feels wrong" from the start IMHO.
...
bakunin
After digging into this a little further it is (now) my understanding that the libraries are slightly different, so linking or pointing to the /usr/lib by updating the variable creates a mess when I try to get something to compile using the GNU libiconv.
I'll try your suggestion using ar shortly and update the thread accordingly. Thank you for your help,
Dan
This User Gave Thanks to kneemoe For This Post:
10 More Discussions You Might Find Interesting
1. Programming
hello all
I want to work in shared libraries how can i work in
Linux Environment ? (2 Replies)
Discussion started by: rajashekaran
2 Replies
2. UNIX for Advanced & Expert Users
What is the primary difference between static library and dynamic library?
and how to write static shared library? (1 Reply)
Discussion started by: areef4u
1 Replies
3. Programming
I need to create a shared library to access an in memory DB. The DB is not huge, but big enough to make it cumbersome to carry around in every single process using the shared library. Luckily, it is pretty static information, so I don't need to worry much about synchronizing the data between... (12 Replies)
Discussion started by: DreamWarrior
12 Replies
4. Programming
Hello,
On a Centos 5.0 box, I have two versions of a library (sqlite):
(1) in /usr/lib that was installed using yum (maybe from php but I am not really sure)
(2) in /usr/local/lib that I installed myself by compiling from the source code.
My C++ program contains the following lines:
... (12 Replies)
Discussion started by: JCR
12 Replies
5. Programming
I am writing a shared library in Linux (but compatible with other UNIXes) and I want to allow multiple instances to share a piece of memory -- 1 byte is enough. What's the "best" way to do this? I want to optimize for speed and portability.
Obviously, I'll have to worry about mutual exclusion. (0 Replies)
Discussion started by: otheus
0 Replies
6. HP-UX
I have never seen this issue before, but here is what is happening. I link an executable against two dynamic mlib libraries veclib and lapack. We place a newer version of these libraries in a write only directory and point the shlib_path at that directory. When the executable runs, it gets a... (3 Replies)
Discussion started by: sambarusty
3 Replies
7. Shell Programming and Scripting
Hi:
I have a library that it only offers Makefile for building static library. It built libxxx.a file. How do I in any way build a shared library? (either changin the Makefile or direct script or command to build shared library)
Thanks. (1 Reply)
Discussion started by: cpthk
1 Replies
8. OS X (Apple)
I'm trying to get Valgrind to work with an openmpi application in OS X. However I want to hardcode the path to a shared library called libmpiwrap-amd64-darwin.so into my application so that it is available at runtime. In Linux this is relatively simple, I would just add the option... (0 Replies)
Discussion started by: Valgrinder
0 Replies
9. Programming
Hello.
I am new to this forum and I would like to ask for advice about low level POSIX programming.
I have to implement a POSIX compliant C shared library.
A file will have some variables and the shared library will have some functions which need those variables.
There is one special... (5 Replies)
Discussion started by: iamjag
5 Replies
10. Linux
Hi All,
i am facing shared library error, below is the output of the command I am executing on my client
# /usr/software/bin/sudo
/usr/software/bin/sudo: error while loading shared libraries: libaudit.so.1: cannot open shared object file: No such file or directory
#
I tried install... (4 Replies)
Discussion started by: muzaffar.k
4 Replies
ld.so(8) System Manager's Manual ld.so(8)
NAME
ld.so, ld-linux.so* - dynamic linker/loader
DESCRIPTION
ld.so loads the shared libraries needed by a program, prepares the program to run, and then runs it. Unless explicitly specified via the
-static option to ld during compilation, all Linux programs are incomplete and require further linking at run time.
The necessary shared libraries needed by the program are searched for in the following order
o Using the DT_RPATH dynamic section attribute of the binary if present and DT_RUNPATH attribute does not exist.
o Using the environment variable LD_LIBRARY_PATH . Except if the executable is a setuid/setgid binary, in which case it is ignored.
o Using the DT_RUNPATH dynamic section attribute of the binary if present.
o From the cache file /etc/ld.so.cache which contains a compiled list of candidate libraries previously found in the augmented library
path. If, however, the binary was linked with -z nodeflib linker option, libraries in the default library paths are skipped.
o In the default path /lib, and then /usr/lib. If the binary was linked with -z nodeflib linker option, this step is skipped.
SYNOPSIS
The dynamic linker can be run either indirectly through running some dynamically linked program or library (in which case no command line
options to the dynamic linker can be passed and the dynamic linker which is stored in the .interp section of the program is executed) or
directly by running:
/lib/ld-linux.so.* [OPTIONS] [PROGRAM [ARGUMENTS]]
COMMAND LINE OPTIONS
--list List all dependencies and how they are resolved.
--verify
Verify that program is dynamically linked and this dynamic linker can handle it.
--library-path PATH
Override LD_LIBRARY_PATH environment variable setting (see below).
--ignore-rpath LIST
Ignore RPATH and RUNPATH information in object names in LIST.
ENVIRONMENT
LD_LIBRARY_PATH
A colon-separated list of directories in which to search for ELF libraries at execution-time. Similar to the PATH environment vari-
able.
LD_PRELOAD
A whitespace-separated list of additional, user-specified, ELF shared libraries to be loaded before all others. This can be used to
selectively override functions in other shared libraries. For setuid/setgid ELF binaries, only libraries in the standard search
directories that are also setuid will be loaded.
LD_TRACE_LOADED_OBJECTS
If set to non-empty string, causes the program to list its dynamic library dependencies, as if run by ldd, instead of running nor-
mally.
LD_BIND_NOW
If set to non-empty string, causes the dynamic linker to resolve all symbols at program startup instead of deferring function call
resolval to the point when they are first referenced.
LD_WARN
If set to non-empty string, warn about unresolved symbols.
LD_DEBUG
Output verbose debugging information about the dynamic linker. If set to all prints all debugging information it has, if set to
help prints a help message about which categories can be specified in this environment variable.
LD_DEBUG_OUTPUT
File where LD_DEBUG output should be fed into, default is standard output. LD_DEBUG_OUTPUT is ignored for setuid/setgid binaries.
LD_VERBOSE
If set to non-empty string, output symbol versioning information about the program if querying information about the program (ie.
either LD_TRACE_LOADED_OBJECTS has been set, or --list or --verify options have been given to the dynamic linker).
FILES
/lib/ld-linux.so.* ELF dynamic linker/loader
/etc/ld.so.cache
File containing a compiled list of directories in which to search for libraries and an ordered list of candidate libraries.
/etc/ld.so.preload
File containing a whitespace separated list of ELF shared libraries to be loaded before the program. libraries and an ordered list
of candidate libraries.
lib*.so*
shared libraries
SEE ALSO
ldd(1), ldconfig(8).
AUTHORS
Roland McGrath, Ulrich Drepper and others. This man page is derived from libc 5 ld.so manual page.
30 October 2000 ld.so(8)