iii
Table of Contents
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1 Programming Languages Supported by GCC
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Language Standards Supported by GCC . . . . . 5
2.1 C language. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 C++ language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 Objective-C and Objective-C++ languages . . . . . . . . . . . . . . . . . . . . . 7
3 GCC Command Options . . . . . . . . . . . . . . . . . . . . . . . 9
3.1 Option Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2 Options Controlling the Kind of Output . . . . . . . . . . . . . . . . . . . . . . . 22
3.3 Compiling C++ Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.4 Options Controlling C Dialect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.5 Options Controlling C++ Dialect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.6 Options Controlling Objective-C and Objective-C++ Dialects . . 41
3.7 Options to Control Diagnostic Messages Formatting . . . . . . . . . . . 45
3.8 Options to Request or Suppress Warnings . . . . . . . . . . . . . . . . . . . . . 46
3.9 Options for Debugging Your Program or GCC . . . . . . . . . . . . . . . . . 67
3.10 Options That Control Optimization . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.11 Options Controlling the Preprocess or. . . . . . . . . . . . . . . . . . . . . . . . 131
3.12 Passing Options to the Assembler . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
3.13 Options for Linking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
3.14 Options for Directory Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
3.15 Specifying subprocesses and the switches to pass to them . . . . 147
3.16 Specifying Target Machine and Compiler Version . . . . . . . . . . . . 154
3.17 Hardware Models and Configurations . . . . . . . . . . . . . . . . . . . . . . . 154
3.17.1 ARC Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
3.17.2 ARM Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
3.17.3 AVR Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
3.17.4 Blackfin Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
3.17.5 CRIS Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
3.17.6 CRX Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
3.17.7 Darwin Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
3.17.8 DEC Alpha Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
3.17.9 DEC Alpha/VMS Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
3.17.10 FR30 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
3.17.11 FRV Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
3.17.12 GNU/Linux Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
3.17.13 H8/300 Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
3.17.14 HPPA Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178