05-11-2009
gcc is just the compiler, not the linker. It will, however, run the linker for you (if you don't specify -c on the command line). There are many linker options. Here's the reference:
Link Options - Using the GNU Compiler Collection (GCC)
One way to do it is to specify --nostdlib and then specify all the libraries you do want your program linked to.
If you want more control over gcc's
default behavior, I suggest you read the following section:
Spec Files - Using the GNU Compiler Collection (GCC)
Basically, gcc is just a wrapper program which uses rules in a spec file to determine which programs to run and how, including the linker. By changing the spec file, you can control gcc's default behavior when running the linker.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
hai
I have installed Linux 7.0 on my system and i have an doubt the
linker
i ran simple hello.c program with gcc compiler
gcc -c hello.c
i want linker to produce the output
so i put on the command line as
ld first.o -lc
but it is not running ver properly
but there is an... (1 Reply)
Discussion started by: rajashekaran
1 Replies
2. Programming
using SUN C++ I have a problem when I do a push_back on a vector. The linker gives me a undefined symbol error on __cxa_end_catch.
Any ideas, is there a library to include?
Thanks
Chris (1 Reply)
Discussion started by: CDurkin
1 Replies
3. UNIX for Advanced & Expert Users
Hi, I want to define a symbol in my code as:
extern int Address;
and then I'd like to define the symbol value in linker (ld) script file, so each time I change the hardware, I don't need to redefine the value in code, just use different linker script. I've gone through ld reference and didn't... (3 Replies)
Discussion started by: lzwierko
3 Replies
4. Linux
Hi All,
I m new to this group.
I m facing one problem during my linking of CPP code at Linux env.
after compliation i m getting error
"undefined reference to ....."
Please anyone help me to resolve this error.
Regards,
ASR
make: Leaving directory /fwk'
echo g++ -o server ... (1 Reply)
Discussion started by: ASRRAJ
1 Replies
5. HP-UX
Hi,
The necessary symbols in a shared library can be exported to the application using linker option --version-script in Linux. The same can be done in Hp-ux using linker option +e. This can also be done by listing all the global symbols with +e in a file with linker option ld -c filename in... (0 Replies)
Discussion started by: roopa_v
0 Replies
6. Programming
Hi,
I do not use the default linker, and instead us another one and pass this argument -Wl,--dynamic-linker=<path to linker> to gcc when compiling. However, what happens if the linker is not under /lib and /lib64 and I am not able to create a symlink to the linker in /lib or /lib64 due to no... (2 Replies)
Discussion started by: Shompis
2 Replies
7. Red Hat
Hello,
I'm experimenting a problem on my rh server.
Red Hat Enterprise Linux AS release 3 (Taroon Update 8)
2.4.21-47.ELsmp #1 SMP i686 i686 i386 GNU/Linux
It started with a segmentation fault on
#id root
To resolve it, I've installed
coreutils-4.5.3-28.4.i386.rpm
But, I... (6 Replies)
Discussion started by: gogol_bordello
6 Replies
8. Programming
I've tried to figure out what the linker is smoking in AIX to no avail...so I'm trying to find a little information to see why it's being inconsistent.
I have the following code in a shared library, it doesn't do anything useful, it's just there to exercise functions in a few system libraries:
... (11 Replies)
Discussion started by: DreamWarrior
11 Replies
9. Solaris
Hey guys
I have a solaris 10 OS, with a zone configured. In that zone, I am trying to install an Oracle Client. However, when I run the oracle installer, I get the following error:
ld.so.1: java: fatal: libexpat.so.0: open failed: No such file or directory
ld.so.1: java: fatal:... (2 Replies)
Discussion started by: goodvikings
2 Replies
10. UNIX and Linux Applications
I have to debug a function getopt_long in glibc-2.11.3-17.31.1.
For that how can I download and install its corresponding glibc-debug on SLES 11? (8 Replies)
Discussion started by: rupeshkp728
8 Replies
LDCONFIG(8) Linux Programmer's Manual LDCONFIG(8)
NAME
ldconfig - configure dynamic linker run-time bindings
SYNOPSIS
/sbin/ldconfig [-nNvXV] [-f conf] [-C cache] [-r root] directory...
/sbin/ldconfig -l [-v] library...
/sbin/ldconfig -p
DESCRIPTION
ldconfig creates the necessary links and cache to the most recent shared libraries found in the directories specified on the command line,
in the file /etc/ld.so.conf, and in the trusted directories, /lib and /usr/lib (on some 64-bit architectures such as x86-64, lib and
/usr/lib are the trusted directories for 32-bit libraries, while /lib64 and /usr/lib64 are used for 64-bit libraries).
The cache is used by the run-time linker, ld.so or ld-linux.so. ldconfig checks the header and filenames of the libraries it encounters
when determining which versions should have their links updated.
ldconfig will attempt to deduce the type of ELF libraries (i.e., libc5 or libc6/glibc) based on what C libraries, if any, the library was
linked against.
Some existing libraries do not contain enough information to allow the deduction of their type. Therefore, the /etc/ld.so.conf file format
allows the specification of an expected type. This is used only for those ELF libraries which we can not work out. The format is
"dirname=TYPE", where TYPE can be libc4, libc5, or libc6. (This syntax also works on the command line.) Spaces are not allowed. Also see
the -p option. ldconfig should normally be run by the superuser as it may require write permission on some root owned directories and
files.
OPTIONS
-c fmt, --format=fmt
(Since glibc 2.2) Cache format to use: old, new, or compat (default).
-C cache
Use cache instead of /etc/ld.so.cache.
-f conf
Use conf instead of /etc/ld.so.conf.
-i, --ignore-aux-cache
(Since glibc 2.7) Ignore auxiliary cache file.
-l (Since glibc 2.2) Library mode. Manually link individual libraries. Intended for use by experts only.
-n Process only the directories specified on the command line. Don't process the trusted directories, nor those specified in
/etc/ld.so.conf. Implies -N.
-N Don't rebuild the cache. Unless -X is also specified, links are still updated.
-p, --print-cache
Print the lists of directories and candidate libraries stored in the current cache.
-r root
Change to and use root as the root directory.
-v, --verbose
Verbose mode. Print current version number, the name of each directory as it is scanned, and any links that are created. Overrides
quiet mode.
-V, --version
Print program version.
-X Don't update links. Unless -N is also specified, the cache is still rebuilt.
FILES
/lib/ld.so
Run-time linker/loader.
/etc/ld.so.conf
File containing a list of directories, one per line, in which to search for libraries.
/etc/ld.so.cache
File containing an ordered list of libraries found in the directories specified in /etc/ld.so.conf, as well as those found in the
trusted directories.
SEE ALSO
ldd(1), ld.so(8)
COLOPHON
This page is part of release 4.15 of the Linux man-pages project. A description of the project, information about reporting bugs, and the
latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.
GNU
2017-09-15 LDCONFIG(8)