C/C++ Programmer's Guide (G06.27+, H06.03+)
Table Of Contents
- What’s New in This Manual
- About This Guide
- 1 Introduction to HP C and C++ for NonStop Systems
- TNS C Language System
- TNS C++ Language System
- TNS/R Native C and C++ Language System
- TNS/R Native C Compiler
- TNS/R Native C++ Compiler
- TNS/R Native C Run-Time Library
- C++ Run-Time Library and Standard C++ Library
- TNS/R Native Linkers (nld and ld Utilities)
- Inspect Symbolic Debugger
- Visual Inspect Symbolic Debugger
- TNS/R Native Object File Tool (noft Utility)
- NonStop SQL/MP Compiler and NonStop SQL/MX Compiler
- TNS/R Native C and C++ Migration Tool
- Features of TNS/R Native C and C++
- TNS/E Native C and C++ Language System
- TNS/E Native C Compiler
- TNS/E Native C++ Compiler
- TNS/E Native C Run-Time Library
- C++ Run-Time Library and Standard C++ Library
- TNS/E Native Linker (eld Utility)
- Native Inspect Symbolic Debugger
- Visual Inspect Symbolic Debugger
- TNS/E Native Object File Tool (enoft Utility)
- NonStop SQL/MP Compiler and NonStop SQL/MX Compiler
- TNS/E Native C and C++ Migration Tool
- Features of TNS/E Native C and C++
- Writing Portable Programs
- Porting Programs to HP C and C++ for NonStop Systems
- Porting Without Data Alignment Problems
- Guardian and OSS Environment Interoperability
- 2 C and C++ Extensions
- 3 Interfacing to Guardian Procedures and OSS Functions
- 4 Using the C Run-Time Library
- 5 Using the Standard C++ Library
- 6 Accessing Middleware Using HP C and C++ for NonStop Systems
- 7 Mixed-Language Programming for TNS Programs
- 8 Mixed-Language Programming for TNS/R and TNS/E Native Programs
- 9 System-Level Programming
- 10 Converting C-Series TNS Programs to Use the Current TNS Compiler
- 11 Migrating Programs to TNS/R or TNS/E Native Mode
- 12 Preprocessor Directives and Macros
- 13 Compiler Pragmas
- ALLOW_CPLUSPLUS_COMMENTS
- ALLOW_EXTERN_EXPLICIT_INSTANTIATION
- ANSICOMPLY
- ANSISTREAMS
- BUILD_NEUTRAL_LIBRARY
- CALL_SHARED
- CHECK
- COLUMNS
- CPATHEQ
- CPPONLY
- CSADDR
- ELD(arg)
- ENV
- ERRORFILE
- ERRORS
- EXTENSIONS
- EXTERN_DATA
- FIELDALIGN
- FORCE_VTBL
- FORCE_STATIC_TYPEINFO
- FORCE_STATIC_VTBL
- FUNCTION
- HEADERS
- HEAP
- HIGHPIN
- HIGHREQUESTERS
- ICODE
- IEEE_FLOAT
- INLINE
- INLINE_COMPILER_GENERATED_FUNCTIONS
- INLINE_LIMIT
- INLINE_STRING_LITERALS
- INNERLIST
- INSPECT
- KR
- LARGESYM
- LD(arg)
- LINES
- LINKFILE
- LIST
- LMAP
- MAP
- MAPINCLUDE
- MAXALIGN
- MIGRATION_CHECK
- NEST
- NEUTRAL
- NLD(arg)
- NOEXCEPTIONS
- NON_SHARED
- OLDCALLS
- OLIMIT
- ONCE
- OPTFILE
- OPTIMIZE
- OVERFLOW_TRAPS
- PAGE
- POOL_STRING_LITERALS
- POP
- PUSH
- REFALIGNED
- REMARKS
- RUNNABLE
- RUNNAMED
- RVU
- SAVEABEND
- SEARCH
- SECTION
- SHARED
- SQL
- SQLMEM
- SRL
- SRLExportClassMembers
- SRLExports
- SRLName
- SSV
- STDFILES
- STRICT
- SUPPRESS
- SUPPRESS_VTBL
- SYMBOLS
- SYNTAX
- SYSTYPE
- TANDEM_FLOAT
- TRIGRAPH
- VERSION1
- VERSION2
- VERSION3
- WARN
- WIDE
- XMEM
- XVAR
- 14 Compiling, Binding, and Accelerating TNS C Programs
- 15 Compiling, Binding, and Accelerating TNS C++ Programs
- 16 Compiling and Linking TNS/R Native C and C++ Programs
- 17 Compiling and Linking TNS/E Native C and C++ Programs
- 18 Using ETK and Native C/C++ Cross Compiler on the PC
- 19 Running and Debugging C and C++ Programs
- 20 TNS C Compiler Messages
- 21 Native C and C++ Compiler Messages
- 22 Run-Time Messages
- 23 Handling TNS Data Alignment
- A HP C Implementation-Defined Behavior
- Implementation-Defined Behavior of Native C
- G.3.1 Translation
- G.3.2 Environment
- G.3.3 Identifiers
- G.3.4 Characters
- G.3.5 Integers
- G.3.6 Floating Point
- G.3.7 Arrays and Pointers
- G.3.8 Registers
- G.3.9 Structures, Unions, Enumerations, and Bit Fields
- G.3.10 Qualifiers
- G.3.11 Declarators
- G.3.12 Statements
- G.3.13 Preprocessing Directives
- G.3.14 Library Functions
- G.4 Locale Behavior
- G.5 Common Extensions
- Translation Limits for Native C Compilers
- Implementation-Defined Behavior of TNS C
- G.3.1 Translation
- G.3.2 Environment
- G.3.3 Identifiers
- G.3.4 Characters
- G.3.5 Integers
- G.3.6 Floating Point
- G.3.7 Arrays and Pointers
- G.3.8 Registers
- G.3.9 Structures, Unions, Enumerations and Bit Fields
- G.3.10 Qualifiers
- G.3.11 Declarators
- G.3.12 Statements
- G.3.13 Preprocessing Directives
- G.3.14 Library Functions
- G.4 Locale Behavior
- G.5 Common Extensions
- Implementation-Defined Behavior of Native C
- B TNS C++ ImplementationDefined Behavior
- C ASCII Character Set
- D Data Type Correspondence
- E Features and Keywords of Version2NativeC++
- F MIGRATION_CHECK Messages
- Glossary
- Index

Compiling and Linking TNS/R Native C and C++
Programs
HP C/C++ Programmer’s Guide for NonStop Systems—429301-010
16-15
Linking a TNS/R Module
•
Uses the C run-time library
•
Uses the C++ run-time library
•
Uses the Tools.h++ library (and whether Version 6.1 or Version 7)
•
Uses the Standard C++ Library
•
Uses the TCP/IP sockets library
Table 16-5 on page 16-15 is a conceptual stack of the SRLs that make up the context
of VERSION1, VERSION2, and VERSION3. In this table, CRTL represents the SRL
named ZCRTLSRL (the C run-time library). RWSLSRL is given as RWSL (the VERSION2
Standard C++ Library, which is a port of the Rogue Wave standard library).
For a given version, you can link only to the SRLs listed in the column or stack for that
version in Table 16-5 on page 16-15. If you attempt to link to SRLs that are listed in
another column, unexpected results can occur. The order of the column or stack is also
important, especially for TNS/R native C++, because it represents the order in which
libraries should be loaded and accessed at run time.
For example, if you are using VERSION1 on Guardian, you can link to ZTLHGSRL
(Tools.h++ version 6), but you cannot link to ZTLHSRL (Tools.h++ version 7). Similarly,
if you are using VERSION3, you cannot link to ZRWSLSRL (the VERSION2 Standard
C++ Library).
Note that ZSTLSRL in VERSION3 contains both the C++ run-time library and the latest
Standard C++ Library. The C++ run-time library is available to VERSION1 as
ZCPLGSRL or ZCPLOSRL, and to VERSION2 as ZCPLSRL, while the latest Standard
C++ Library is only available to VERSION3 (the earlier version of the library is available
to VERSION2 as ZRWSLSRL).
Table 16-5. SRLs Available When Using VERSION1, VERSION2, and VERSION3
VERSION 1 VERSION 2 VERSION 3
Guardian OSS Guardian OSS OSS OSS
TLHG TLHO TLH TLH N.A. N.A.
N.A. N.A. RWSL RWSL STL STL
CPLG CPLO CPL CPL STL STL
CRTL CRTL CRTL CRTL CRTL CRTL
CRE CRE CRE CRE CRE CRE
OS OSS OS OSS OS OSS
OS OS OS OS OS OS
Notes: SRL names are shown without the leading Z and these SRL; therefore, STL represents ZSTLSRL (the
combined C++ run-time library and the C++ Standard Library for VERSION3), and TLH represents ZTLHSRL (the
Tools.h++ library for VERSION2).
OS represents the operating system.
OSS represents the Open System Services environment.
CRE represents the common run-time environment.