2.3 Compiling With Different Compiler Versions
2.4.2 Separate Compiling and Linking
2.4.3 Consistent Compiling and Linking
2.4.4 Compiling for 64-Bit Memory Model
2.4.5 Compiler Command-Line Diagnostics
2.4.6 Understanding the Compiler Organization
2.5 Preprocessing Directives and Names
2.5.2 Macros With a Variable Number of Arguments
2.6.3 Control of Virtual Memory
2.7 Using the strip Command with C++ Objects
2.8.1 Using Aliases Within the C Shell
2.8.2 Using CCFLAGS to Specify Compile Options
2.8.3.1 Using CCFLAGS Within make
3. Using the C++ Compiler Options
6. Creating and Using Templates
9. Improving Program Performance
10. Building Multithreaded Programs
12. Using The C++ Standard Library
13. Using the Classic iostream Library
The remainder of this chapter discusses the conventions used by the CC command, compiler source line directives, and other issues concerning the use of the compiler.
The general syntax of a compiler command line is as follows:
CC [options] [source-files] [object-files] [libraries]
An option is an option keyword prefixed by either a dash (–) or a plus sign (+). Some options take arguments.
In general, the processing of the compiler options is from left to right, allowing selective overriding of macro options (options that include other options). In most cases, if you specify the same option more than once, the rightmost assignment overrides and there is no accumulation. Note the following exceptions:
All linker options and the -features, –I -l,– L, -library, –pti, –R, -staticlib, -U, -verbose, -xdumpmacros, and -xprefetch options accumulate, they do not override.
All –U options are processed after all –D options.
Source files, object files, and libraries are compiled and linked in the order in which they appear on the command line.
In the following example, CC is used to compile two source files (growth.C and fft.C) to produce an executable file named growth with runtime debugging enabled:
example% CC -g -o growth growth.C fft.C
The suffix attached to a file name appearing on the command line determines how the compiler processes the file. A file name with a suffix other than those listed in the following table, or without a suffix, is passed to the linker.
Table 2-1 File Name Suffixes Recognized by the C++ Compiler
|
The C++ compiler accepts multiple source files on the command line. A single source file compiled by the compiler, together with any files that it directly or indirectly supports, is referred to as a compilation unit. C++ treats each source as a separate compilation unit.