C/C++ Programmer's Guide (G06.25+)

Compiler Pragmas
HP C/C++ Programmer’s Guide for NonStop Systems429301-008
13-85
SHARED
SHARED
The SHARED pragma directs the native C and C++ compilers to generate shared code,
which is PIC (Position-Independent Code) and to invoke the ld or eld linker to create
a PIC library file, or a dynamic-link library (DLL).
Compare the action of SHARED with that of the two related pragmas:
CALL_SHARED directs the compiler to generate PIC.
NON_SHARED directs the compiler to generate a non-PIC loadfile that cannot be
shared and cannot access PIC files.
The pragma default settings are:
Usage Guidelines
On Guardian, the SHARED pragma can appear only on the RUN command line for
CCOMP, CPPCOMP, NMC, or NMCPLUS. On OSS, the -Wshared option can
appear only on the command line for the c89 utility.
The default behavior of SHARED is to invoke the eld or ld linker and to produce a
PIC library file (a DLL).
°
On Guardian, if you specify both SHARED and RUNNABLE, the compiler issues
an error and terminates.
°
On OSS, if you specify both -c and -Wshared, the compiler issues an error
and terminates.
If you specify CPPONLY or SYNTAX with the SHARED pragma, linking does not
occur because it is prevented by the additional pragmas.
For complete information about programming with DLLs and linker options for
DLLS, see the:
°
DLL Programmer’s Guide for TNS/R Systems
°
DLL Programmers Guide for TNS/E Systems
SHARED
SYSTYPE GUARDIAN SYSTYPE OSS
TNS C compiler N.A. N.A.
G-series TNS c89 utility N.A. N.A.
TNS/R native C and C++ compilers NON_SHARED NON_SHARED
Native c89 utility TNS/R code:
NON_SHARED
TNS/E code:
CALL_SHARED
TNS/R code:
NON_SHARED
TNS/E code:
CALL_SHARED
TNS/E native C and C++ compilers CALL_SHARED CALL_SHARED