GNU プロジェクト C および C++ コンパイラ (gcc-2.95.3)
gcc
g++
\w'.cxx 'u .c C言語ソースです。プリプロセッサ、コンパイラ、アセンブラにかけられます。 .C C++言語ソースです。プリプロセッサ、コンパイラ、アセンブラにかけられます。 .cc C++言語ソースです。プリプロセッサ、コンパイラ、アセンブラにかけられます。 .cxx C++言語ソースです。プリプロセッサ、コンパイラ、アセンブラにかけられます。 .m Objective-C 言語ソースです。プリプロセッサ、コンパイラ、アセンブラにかけられます。 .i プリプロセッサにかけられたC言語ソースです。コンパイラ、アセンブラにかけられます。 .ii プリプロセッサにかけられたC++言語ソースです。コンパイラ、アセンブラにかけられます。 .s アセンブリ言語ソースです。アセンブラにかけられます。 .S アセンブリ言語ソースです。プリプロセッサ、アセンブラにかけられます。 .h プリプロセッサファイルです。通常はコマンドラインには現れません。その他の拡張子を持つファイルはリンカに渡されます。以下のものがあります。
.o オブジェクトファイルです。 .a アーカイブファイルです。
-pthread
-kthread
全体的なオプション
言語オプション
警告オプション
デバッグオプション
最適化オプション
プリプロセッサオプション
アセンブラオプション
リンカオプション
ディレクトリオプション
ターゲットオプション
コンフィギュレーション依存オプション
M680x0 オプション
-m68000
-m68020
-m68020-40
-m68030
-m68040
-m68881
-mbitfield
-mc68000
-mc68020
-mfpa
-mnobitfield
-mrtd
-mshort
-msoft-float
VAX オプション
-mg
-mgnu
-munix
SPARC オプション
-mepilogue
-mfpu
-mhard-float
-mno-fpu
-mno-epilogue
-msoft-float
-msparclite
-mv8
-msupersparc
-mcypress
Convex オプション
-margcount
-mc1
-mc2
-mnoargcount
AMD29K オプション
-m29000
-m29050
-mbw
-mdw
-mkernel-registers
-mlarge
-mnbw
-mnodw
-msmall
-mstack-check
-muser-registers
M88K オプション
-m88000
-m88100
-m88110
-mbig-pic
-mcheck-zero-division
-mhandle-large-shift
-midentify-revision
-mno-check-zero-division
-mno-ocs-debug-info
-mno-ocs-frame-position
-mno-optimize-arg-area
-mno-serialize-volatile
-mno-underscores
-mocs-debug-info
-mocs-frame-position
-moptimize-arg-area
-mserialize-volatile
-mshort-data- num
-msvr3
-msvr4
-mtrap-large-shift
-muse-div-instruction
-mversion-03.00
-mwarn-passed-structs
RS6000 オプション
-mfp-in-toc
-mno-fop-in-toc
RT オプション
-mcall-lib-mul
-mfp-arg-in-fpregs
-mfp-arg-in-gregs
-mfull-fp-blocks
-mhc-struct-return
-min-line-mul
-mminimum-fp-blocks
-mnohc-struct-return
MIPS オプション
-mcpu=cpu type
-mips2
-mips3
-mint64
-mlong64
-mlonglong128
-mmips-as
-mgas
-mrnames
-mno-rnames
-mgpopt
-mno-gpopt
-mstats
-mno-stats
-mmemcpy
-mno-memcpy
-mno-mips-tfile
-mmips-tfile
-msoft-float
-mhard-float
-mabicalls
-mno-abicalls
-mhalf-pic
-mno-half-pic
-G num
-nocpp
i386 オプション
-m386
-m486
-mpentium
-mpentiumpro
-mno-486
-mcpu=cpu type
-march=cpu type
-msoft-float
-mrtd
-mregparm
-msvr3-shlib
-mno-ieee-fp
-mno-fp-ret-in-387
-mfancy-math-387
-mno-wide-multiply
-mdebug-addr
-mno-move
-mprofiler-epilogue
-reg-alloc=LIST
HPPA オプション
-mpa-risc-1-0
-mpa-risc-1-1
-mkernel
-mshared-libs
-mno-shared-libs
-mlong-calls
-mdisable-fpregs
-mdisable-indexing
-mtrailing-colon
i960 オプション
-mcpu-type
-mnumerics
-msoft-float
-mleaf-procedures
-mno-leaf-procedures
-mtail-call
-mno-tail-call
-mcomplex-addr
-mno-complex-addr
-mcode-align
-mno-code-align
-mic-compat
-mic2.0-compat
-mic3.0-compat
-masm-compat
-mintel-asm
-mstrict-align
-mno-strict-align
-mold-align
-mno-old-align
DEC Alpha オプション
-mfp-regs
-mno-fp-regs
-mno-soft-float
-msoft-float
System V オプション
-G
-Qy
-Qn
-YP, paths
-Ym, dir
コード生成オプション
-x language
language\c
であると明示的に指定します
(拡張子に基づくデフォルトの選択よりも優先されます)。このオプションは、
次の `\c
-x\c
' オプションが出てくるまで、後続する全ての入力ファイルに対して
適用されます。\c
language\c
としては、
`\c
c\c
', `\c
objective-c\c
', `\c
c-header\c
', `\c
c++\c
',
`\c
cpp-output\c
', `\c
assembler\c
', `\c
assembler-with-cpp\c
' を指定することが可能です。
-x none
-c
-S
-E
-o file
file\c
に指定します。このオプションは GCC が実行可能ファイル、
オブジェクトファイル、アセンブラファイル、プリプロセス済み C コードなどの、
いかなる種類の出力を行なう場合にも適用可能です。
source\c
.\c
suffix\c
\c
' の形式のファイル名を持ったソースファイルのオブジェクトファイルは
`\c
source\c
.o\c
' であり、アセンブラのファイルは `\c
source\c
.s\c
' です。
プリプロセス済みの C 言語は、全て標準出力に送られます。
-v
-pipe
以下のオプションは、コンパイラが受け付ける C の方言に関する制御を行ないます:
-ansi
-fno-asm
-fno-builtin
-fhosted
-ffreestanding
-fno-strict-prototype
-trigraphs
-traditional
-traditional-cpp
-fdollars-in-identifiers
-fenum-int-equiv
-fexternal-templates
-fall-virtual
-fcond-mismatch
-fthis-is-variable
-funsigned-char
-fsigned-char
-fsigned-bitfields
-funsigned-bitfields
-fno-signed-bitfields
-fno-unsigned-bitfields
-fwritable-strings
-include file
file\c
を、通常の入力ファイルが処理される前に処理します。結果的に \c
file\c
に含まれる内容は、一番最初にコンパイルされることになります。コマンドラ
インに指定されたすべての `\c
-D\c
'
や `\c
-U\c
' オプションは、その記述された順番に関わらず常に `\c
-include \c
file\c
\c
' が処理される前に処理されます。全ての `\c
-include\c
' や `\c
-imacros\c
' オプションは、それらが記述された順番通りに処理されます。
-imacros file
file\c
を入力として処理しますが、その結果の出力を捨てます。
file\c
によって生成された出力は捨てられるため、`\c
-imacros \c
file\c
\c
' の処理結果の影響は、\c
file\c
中に記述されたマクロがメインの入力ファイル中で使用可能になることだけです。
プリプロセッサは、`\c
-imacros \c
file\c
' が記述された順番に関わらず、これを処理する前に、
コマンドラインから与えられた全ての `\c
-D\c
' や `\c
-U\c
' オプションを評価します。全ての `\c
-include\c
' および `\c
-imacros\c
'
オプションは、それらが記述された順番通りに処理されます。
-idirafter dir
dir\c
を第 2 インクルードパスに加えます。第 2 インクルードパス中のディレクトリは、
メインインクルードパス (オプション
`\c
-I\c
' によって追加されます) 中にヘッダファイルを探した結果発見できな
かった場合に検索されます。
-iprefix prefix
prefix\c
を、その後に続く `\c
-iwithprefix\c
'
オプション用のプレフィックスとして使用します。
-iwithprefix dir
prefix\c
と \c
dir\c
を連結することによって得られます。ここで \c
prefix
は、`\c
-iprefix\c
' オプションによって指定されたものです。
-nostdinc
-nostdinc++
-undef
-E
-C
-P
-M [ -MG ]
-MM [ -MG ]
file\c
\c
'によってインクルードされるユーザ定義のヘッダファイルのみを対象に
した出力ファイルを生成します。`\c
#include <\c
file\c
>\c
' によってインクルードされるシステムヘッダファイルは省略されます。
-MD
-MMD
-H
-A question ( answer )
question\c
に対するアサーション
answer
を定義します。これは `\c
#if # question ( answer )\c
' のようなプリプロセッサ条件節によってテストされます。`\c
-A-\c
' は標準のアサーション(通常はターゲットマシンに関
する情報を表している)を禁止します。
-D macro
macro\c
に対して文字列 `\c
1\c
' を定義として与えます。
-D macro = defn
macro\c
を \c
defn\c
として定義します。コマンドライン上の全ての `\c
-D\c
' オプションは `\c
-U\c
' オプションの処理を行なう前に処理されます。
-U macro
macro\c
の定義を無効にします。`\c
-U\c
' オプションは全ての `\c
-D\c
' オプションの処理が終了した後、`\c
-include\c
' と `\c
-imacros\c
' オプションの処理の前に処理されます。
-dM
-dD
-dN
name\c
\c
' のみが含まれます。
-Wa, option
option\c
をアセンブラに対するオプションとして渡します。\c
option
がコンマを含む場合は、そのコンマで区切られた複数のオプションとして与え
られます。
object-file-name
-l library
library\c
であるライブラリをリンク時に使用します。
library\c
.a\c
' であるファイルを検索します。リンカはこのファイルを、ファイル
名で直接指定した場合と同様に使用します。
library
を `\c
lib\c
' と `\c
' で囲み、いくつものディレクトリを検索することだけです。
-lobjc
-nostartfiles
-nostdlib
-static
-shared
-symbolic
-Xlinker option
option
をリンカに対して渡します。リンカに渡すシステム固有のオプションが、
GNU CC が理解できないものである場合に利用できます。
-Wl, option
option\c
をリンカに渡します。\c
option\c
がコンマを含む場合は、それらのコンマで複数のオプションとして分割されます。
-u symbol
symbol
が未定義であるかのように振舞います。これは強制的にこのシンボルを定義してい
るライブラリモジュールをリンクするために使用します。`\c
-u\c
' は異なったシンボルに対して複数回使用することができます。これによっ
て、さらに多くのライブラリモジュールを読み込ませることができます。
-I dir
dir\c
を、インクルードファイルの検索するディレクトリのリスト中に追加します。
-I-
file\c
\c
' の形式によってのみ検索されます。
これらのディレクトリは `\c
#include <\c
file\c
>\c
' によっては検索されません。
全ての\c
`\c
-I\c
' で指定されたディレクトリは
この方法で検索されます。)
file\c
\c
' に対する最初の検索対象となることを抑制します。`\c
-I-\c
' によるこの効果を上書きする方法はありません。`\c
-I.\c
' を指定することによって、コンパイラが起動されたディレクトリが検索
されることを指定することは可能です。これはプリプロセッサが行なう
デフォルトの動作とは異なりますが、たいていはこれで十分です。
-L dir
dir\c
を `\c
-l\c
' による検索が行なわれるディレクトリのリストに加えます。
-B prefix
prefix\c
に `\c
machine\c
/\c
version\c
/\c
' をつけたものとつけないものの双方を
使用します。
-fsyntax-only
-w
-Wno-import
-pedantic
使う\c
理由はありませんが、こだわりのある人々を満足させるためにのみ
存在しています。
-pedantic-errors
-W
bu
bu
foo (a) { if (a > 0) return a; }ある関数 (\c abort\c や\c longjmp\c を含む) が決してリターンしないということを GNU CC が理解できないために、にせの警告 が発生するかもしれません。
bu
bu
-Wimplicit-int
-Wimplicit-function-declaration
-Wimplicit
-Wmain
-Wreturn-type
-Wunused
-Wswitch
-Wcomment
-Wtrigraphs
-Wformat
-Wchar-subscripts
-Wuninitialized
{ int x; switch (y) { case 1: x = 1; break; case 2: x = 4; break; case 3: x = 5; } foo (x); }もし \c y\c の値が常に 1, 2 あるいは 3 である限りは \c x\c は常に 初期化されます。しかし GNU CC はこれを知ることはできません。もう 1 つの一般 的な例を挙げます。
{ int save_y; if (change_y) save_y = y, y = new_y; if (change_y) y = save_y; }これはバグを含みません。なぜなら \c save_y\c は、その値が設定された時のみ使用されるからです。
-Wparentheses
-Wtemplate-debugging
-Wall
-Wtraditional
bu
bu
bu
-Wshadow
-Wid-clash- len
len
文字が一致した時に警告します。これはある種の旧式な
おばかさんコンパイラでコンパイルされ得るプログラムを作る場合に役に立ちます。
-Wpointer-arith
-Wcast-qual
-Wcast-align
-Wwrite-strings
length\c
]\c
を与え、非-\c
const\c
の \c
char **
ポインタへのアドレスのコピーに対して警告するようにします。この警告は、
宣言とプロトタイプにおいて \c
const\c
の使用を非常に注意深くおこなっていさえすれば、
文字列定数に書き込みをしそうなコードをコンパイル時に発見することを助けますが、
そうでない場合は有害無益な指定です。これが、我々がこの警告を `\c
-Wall\c
' のリクエストに含めなかった理由です。
-Wconversion
-Waggregate-return
-Wstrict-prototypes
-Wmissing-declarations
-Wredundant-decls
-Wnested-externs
-Wenum-clash
-Wlong-long
-Woverloaded-virtual
-Winline
-Werror
-g
-ggdb
-gstabs
-gstabs+
-gcoff
-gxcoff
-gxcoff+
-gdwarf
-gdwarf+
-gdwarf level
level\c
によってどの程度の情報が必要かを指定します。デフォルトのレベルは 2 です。
-p
-pg
-a
-ax
-d letters
letters\c
で指定されるタイミングに、デバッグ用のダンプを生成するように指示します。
これはコンパイラをデバッグするために使用されます。ほとんどのダンプのファイル
名はソースファイル名に 1 単語をつなげたものになります。(例えば、`\c
foo.c.rtl\c
' や `\c
foo.c.jump\c
' などです)。
-dM
-dN
-dD
-dy
-dr
file\c
.rtl\c
' に対してダンプします。
-dx
-dj
file\c
.jump\c
' に対してダンプします。
-ds
file\c
.cse\c
' に対してダンプします。
-dL
file\c
.loop\c
' に対してダンプします。
-dt
file\c
.cse2\c
' に対してダンプします。
-df
file\c
.flow\c
' に対してダンプします。
-dc
file\c
.combine\c
' に対してダンプします。
-dS
file\c
.sched\c
' に対してダンプします。
-dl
file\c
.lreg\c
' に対してダンプします。
-dg
file\c
.greg\c
' に対してダンプします。
-dR
file\c
.sched2\c
' に対してダンプします。
-dJ
file\c
.jump2\c
' に対してダンプします。
-dd
file\c
.dbr\c
' に対してダンプします。
-dk
file\c
.stack\c
' に対してダンプします。
-da
-dm
-dp
-fpretend-float
-save-temps
-print-libgcc-file-name= library
library
' の完全な絶対名を表示します。このファイルはリンクの際のみに使用され、
それ以外の働きはありません。このオプションが指定された場合は、GNU CC は
コンパイルやリンクを何も行なわず、ただファイル名を表示するのみです。
-print-libgcc-file-name
-print-prog-name= program
-O
-O1
-O2
-O3
-Os
-O0
flag\c
\c
' の形式を持ったオプションは、マシン独立のフラグです。ほとんどの
フラグは有効形式と無効形式の双方を持っています。`\c
-ffoo\c
' の無効形式は `\c
-fno-foo\c
' です。以下のリストでは、デフォルトではない方の形式のみを示します。
これに対して `\c
no-\c
' を削除する、あるいは追加することによって双方の形式を生成すること
が可能です。
-ffloat-store
-fmemoize-lookups
-fsave-memoized
-fno-default-inline
-fno-defer-pop
-fforce-mem
-fforce-addr
-fomit-frame-pointer
ただし、このオプションはほとんどのマシンにおいてデバッグを不可能にします。
-finline-functions
-fcaller-saves
-fkeep-inline-functions
-fno-function-cse
-fno-peephole
-ffast-math
-fstrength-reduce
-fthread-jumps
-funroll-loops
-funroll-all-loops
-fcse-follow-jumps
-fcse-skip-blocks
-frerun-cse-after-loop
-felide-constructors
-fexpensive-optimizations
-fdelayed-branch
-fschedule-insns
-fschedule-insns2
-b machine
machine\c
は、コンパイルのターゲットマシンを規定します。これは GNU CC をクロス
コンパイラとしてインストールした時に有用です。
machine\c
に指定する値は、GNU CC をクロスコンパイラとしてコンフィギュレーション
した時に与えたマシンタイプと同じです。例えば、80386 上の System V
で実行されるプログラムのために `\c
configure
i386v\c
' というコンフィギュレーションを行なったクロスコンパイラを起動した
い場合は、`\c
-b i386v\c
' と指定します。
-V version
version\c
は、起動される GNU CC のバージョンを規定します。これは複数のバージョンが
インストールされている場合に有用です。例えば、
version\c
が `\c
2.0\c
' ならば、GNU CC バージョン 2.0 を起動することを意味します。
-m68000
-mc68000
-m68020
-mc68020
-m68881
-m68030
-m68040
-m68020-40
-mfpa
-msoft-float
警告:
この必須のライブラリは GNU CC の一部としては含まれません。通常はそのマシン
の一般的な C コンパイラの提供するものを使用しますが、これは通常の方法
ではクロスコンパイルで直接使用することはできません。クロスコンパイルを行
ないたい場合は、自分自身で必要なライブラリ関数を用意する必要があります。
-mshort
-mnobitfield
-mbitfield
-mrtd
-munix
-mgnu
-mg
-mhard-float
-msoft-float
警告:
SPARC 用の GNU 浮動小数点ライブラリは存在しません。
通常はそのマシンの一般的な C コンパイラの提供するものを使用しますが、
これは通常の方法ではクロスコンパイルで直接使用することはできません。
クロスコンパイルを行ないたい場合は、
自分自身で必要なライブラリ関数を用意する必要があります。
全て
のプログラムをこのオプションでコンパイルしない限り、
このオプションは意味をなしません。
-mno-epilogue
-mepilogue
-mv8
-msparclite
-msupersparc
-mc1
-mc2
-margcount
-mnoargcount
-mdw
-mnodw
-mbw
-mnbw
-msmall
-mlarge
-m29050
-m29000
-mkernel-registers
-muser-registers
-mstack-check
-m88000
-m88100
-m88110
-midentify-revision
-mno-underscores
-mno-check-zero-division
-mcheck-zero-division
-mocs-debug-info
-mno-ocs-debug-info
-mocs-frame-position
-mno-ocs-frame-position
-moptimize-arg-area
-mno-optimize-arg-area
-mshort-data- num
num\c
をこのオプションとともに指定することによって、どのデータ参照が影響
を受けるかを指定することができます。例えば `\c
-mshort-data-512\c
' を指定すると、512 バイト以内のディスプレースメントのデータ参照が
影響を受けることになります。
`\c
-mshort-data-\c
num\c
\c
' は \c
num\c
が 64K よりも大きな時は効果を持ちません。
-mserialize-volatile
-mno-serialize-volatile
-msvr3
bu
bu
bu
-mtrap-large-shift
-mhandle-large-shift
-muse-div-instruction
-mversion-03.00
-mwarn-passed-structs
-mno-fp-in-toc
-min-line-mul
-mcall-lib-mul
-mfull-fp-blocks
-mminimum-fp-blocks
-mfp-arg-in-fpregs
-mfp-arg-in-gregs
-mhc-struct-return
-mnohc-struct-return
-mcpu= cpu-type
cpu-type
に仮定します。デフォルトの
cpu-type
は
default
です。この選択はすべてのマシンに対する最長のサイクル数を元にコードを
生成します。これは、生成されるコードがどの MIPS cpu においても適当な速度
で処理されるようにするためです。これ以外の
cpu-type
の選択としては、
r2000 ,
r3000 ,
r4000 ,
r6000
があります。特定の
cpu-type
を選択した場合は、その特定のチップに適したスケジュールが行われます。
コンパイラは、
-mips2
または
-mips3
スイッチが使用されていない場合は、MIPS ISA (instruction set
architecture) のレベル 1 に合致しないコードを生成することはありません。
-mips2
-mips3
-mint64
-mlong64
-mlonglong128
-mmips-as
-mgas
-mrnames
-mno-rnames
-mgpopt
-mno-gpopt
-mstats
-mno-stats
-mmemcpy
-mno-memcpy
-mmips-tfile
-mno-mips-tfile
-msoft-float
警告:
この必須のライブラリは GNU CC の一部としては含まれません。通常はそのマシンの
一般的な C コンパイラの提供するものを使用しますが、これは通常の方法
ではクロスコンパイルで直接使用することはできません。クロスコンパイルを行
ないたい場合は、自分自身で必要なライブラリ関数を用意する必要があります。
-mhard-float
-mfp64
-mfp32
-mno-abicalls
-mhalf-pic
-mno-half-pic
num
バイト以下のグローバル、あるいは静的なアイテムを、通常のデータや bss
セクションではなく、小さなデータ、または bss セクションに配置することを
指定します。
これによりアセンブラは、通常では 2 ワードの参照を行うところを、
グローバルポインタ
( gp
または
$28 )
を基準とした 1 ワードのメモリ参照命令を生成可能となります。
デフォルトでは MIPS アセンブラが使用される場合、
num
は 8 です。また、GNU アセンブラが使用される場合のデフォルトは 0 です。
-G num
スイッチはアセンブラ、リンカにも同様に渡されます。全てのモジュールは同一の
-G num
の値でコンパイルされなければなりません。
-nocpp
-m486
-mno-486
-mpentium
-mpentiumpro
-mcpu=cpu type
-march=cpu type
-msoft-float
警告:
この必須のライブラリは GNU CC の一部としては含まれません。通常はそのマシンの
一般的な C コンパイラの提供するものを使用しますが、これは通常の方法
ではクロスコンパイルで直接使用することはできません。クロスコンパイルを行
ないたい場合は、自分自身で必要なライブラリ関数を用意する必要があります。
-mno-fp-ret-in-387
-mprofiler-epilogue
-mno-profiler-epilogue
-mpa-risc-1-0
-mpa-risc-1-1
-mkernel
-mshared-libs
-mno-shared-libs
-mlong-calls
-mdisable-fpregs
-mdisable-indexing
-mtrailing-colon
-m cpu-type
cpu-type
に仮定します。これは生成する命令とアドレッシングモード、そして境界条件に
関係します。
デフォルトの
cpu-type
は
kb
です。その他の選択としては
ka ,
mc ,
ca ,
cf ,
sa ,
sb
があります。
-mnumerics
-msoft-float
-mleaf-procedures
-mno-leaf-procedures
bal
命令でも呼び出すことを可能とします (あるいは、しません)。これは
bal
命令がアセンブラ、またはリンカによって置き換えられ得る場合には、直接呼
び出しに対して効率の良いコードを得ることができます。ただし、それ以外の場
合は効率の良くないコードを生成します。例えば、関数へのポインタ経由の呼び
出しや、この最適化をサポートしないリンカを使用した場合などがこれ
に該当します。
-mtail-call
-mno-tail-call
-mcomplex-addr
-mno-complex-addr
-mcode-align
-mno-code-align
-mic-compat
-mic2.0-compat
-mic3.0-compat
-masm-compat
-mintel-asm
-mstrict-align
-mno-strict-align
-mold-align
-mno-soft-float
-msoft-float
-mfp-reg
-mno-fp-regs
-G
-Qy
-Qn
-YP, dirs
dirs\c
で規定されたディレクトリのみを検索し、他は検索しません。
dirs\c
中は、1 つのコロンで区切ることにより、
複数のディレクトリエントリを記述します。
-Ym, dir
dir\c
に検索します。アセンブラがこのオプションを使用します。
-fnonnull-objects
-fpcc-struct-return
-freg-struct-return
-fshort-enums
-fshort-double
-fshared-data
-fno-common
-fno-ident
-fno-gnu-linker
必ず使用しなければならない\c
システムにおいては、
コンパイラドライバ \c
gcc\c
は自動的にそのようにコンフィギュレーションされます。
-finhibit-size-directive
-fverbose-asm
-fvolatile
-fvolatile-global
-fpic
-fPIC
-ffixed- reg
reg\c
のレジスタを固定レジスタとして扱います。生成されたコードはこのレジスタ
を参照しません (ただし、スタックポインタ、フレームポインタ、その他固定用
途の場合を除きます)。
reg\c
はレジスタ名でなければなりません。受け付けられるレジスタ名はマシン固
有であり、マシン記述マクロファイル内の \c
REGISTER_NAMES
マクロに記述されたものです。
-fcall-used- reg
reg\c
のレジスタを、関数呼び出しによって破壊される割り当て可能のレジスタ
として取り扱います。これは、関数呼び出しを跨いで存在しない一時領域や変数
として割り当ることができます。この指定でコンパイルされた関数は、レジスタ \c
reg\c
の保存や復帰を行いません。
-fcall-saved- reg
reg\c
のレジスタを、関数によって保存される割り当て可能なレジスタとして取
り扱います。これは、関数呼び出しを跨いで存在する一時領域や変数としても割り
当てることができます。この指定でコンパイルされた関数は、レジスタ \c
reg\c
を使用する場合、その保存と復帰を行います。
#pragma interface
#pragma implementation
#pragma implementation objects.h
\w'LIBDIR/g++-include 'u file.c C 言語ソースファイル file.h C 言語ヘッダ (プリプロセッサ) ファイル file.i プリプロセス済みの C 言語ソースファイル file.C C++ ソースファイル file.cc C++ ソースファイル file.cxx C++ ソースファイル file.m Objective-C ソースファイル file.s アセンブリ言語ファイル file.o オブジェクトファイル a.out リンクエディット済みの出力 TMPDIR/cc** 一時ファイル群 LIBDIR/cpp プリプロセッサ LIBDIR/cc1 C 言語コンパイラ LIBDIR/cc1plus C++ コンパイラ LIBDIR/collect いくつかのマシンで必要となるリンカのフロントエンド LIBDIR/libgcc.a GCC サブルーチンライブラリ /lib/crt[01n].o スタートアップルーチン LIBDIR/ccrt0 C++ 用の付加的なスタートアップルーチン /lib/libc.a 標準ライブラリ、\c intro (3) \c を参照 /usr/include #include ファイルのための標準ディレクトリ LIBDIR/include #include ファイルのための GCC 標準ディレクトリ LIBDIR/g++-include #include ファイルのための付加的な g++ ディレクトリ
LIBDIR
は通常
/usr/local/lib/\c
machine / version
の形式を持ちます
TMPDIR
は環境変数
TMPDIR
(もし使用可能ならば
/usr/tmp
を、そうでなければ
/tmp\c
を使用します) からとられます。