|Skip Navigation Links|
|Exit Print View|
|Oracle Solaris Studio 12.3: C++ User's Guide Oracle Solaris Studio 12.3 Information Library|
The CC driver links in shared versions of several libraries by default, including libc and libm, by passing a -llib option for each of the default libraries to the linker. (See 11.2.3 Default C++ Libraries for the list of default libraries.)
example% CC test.c -staticlib=Crun
In this example, the -library option is not explicitly included in the command. In this case, the -library option is not necessary because the default setting for -library is Cstd,Crun in standard mode (the default mode).
Alternately, you can use the -xnolib compiler option. With the -xnolib option, the driver does not pass any -l options to ld; you must pass these options yourself. The following example shows how you would link statically with libCrun, and dynamically with libm, and libc:
example% CC test.c -xnolib -lCstd -Bstatic -lCrun -Bdynamic -lm -lc
The order of the -l options is important. The –lCstd, –lCrun, and -lm options appear before -lc.
Note - Linking the libCrun and libCstd statically is not recommended. The dynamic versions in /usr/lib are built to work with the version of Oracle Solaris where they are installed.
Some CC options link to other libraries. These library links are also suppressed by -xnolib. For example, using the -mt option causes the CC driver to pass -lthread to ld. However, if you use both–mt and –xnolib, the CC driver does not pass-lthread to ld. See A.2.147 -xnolib for more information. See Linker and Libraries Guide for more information about ld.
Note - Static versions of Oracle Solaris libraries in /lib and /usr/lib are no longer available. For example, this attempt to link libc statically will fail:
CC hello.cc -xnolib -lCrun -lCstd -Bstatic -lc