-shared (-qmkshrobj)
Category
Pragma equivalent
None.
Purpose
Creates a shared object from generated object files.
Use this option, together with the related options described later in this topic, instead of calling the linker directly to create a shared object. The advantages of using this option are the automatic handling of link-time C++ template instantiation (using either the template include directory or the template registry), and compatibility with -qipa link-time optimizations (such as those performed at -O5).
Syntax
>>- -shared----------------------------------------------------><
>>- -q--mkshrobj-----------------------------------------------><
Defaults
By default, the output object is linked with the runtime libraries and startup routines to create an executable file.
Usage
The compiler automatically exports all global symbols from the shared object unless you specify which symbols to export by using the --version-script linker option. Symbols that have the hidden or internal visibility attribute are not exported.
Specifying -shared (-qmkshrobj) implies -fPIC (-qpic).
You can also use the following related options with -shared (-qmkshrobj):
- -o shared_file
- The name of the file that holds the shared file information. The default is a.out.
- -e name
- Sets the entry name for the shared executable to name.
For detailed information about using -shared (-qmkshrobj) to create shared libraries, see Constructing a library.
Predefined macros
None.
Examples
xlc -shared -o big_lib.so lib_a.o lib_b.o lib_c.o