名称
cc_bundled_ia: cc ― バンドルされている C コンパイラ
説明
このマンページは、バンドルされている C コンパイラについての説明です。 cc は HP-UX にバンドルされた C コンパイラを起動します。
C のソースコードは、オブジェクトコードに直接コンパイルされます。
このコマンドは、コード生成に加えて、前処理、構文チェック、タイプチェックのために、 ctcom (Itanium(R) ベース
システム) または ccom (PA-RISC (Precision Architecture)
システム) コンパイラを使用します。
cc では、 files に数種類の引き数を指定できます。
| .c 接尾辞 | | .c で終わる名前の引き数は、C
のソースファイルとして解釈します。各 .c ファイルをコンパイルし、その結果のオブジェクトファイルは、ソースファイルと同じベース (ファイル) 名で拡張子が .c ではなく .o のファイルになります。ただし、1
つの C ソースファイルのコンパイルからリンクまでを 1 ステップで行うと、 .o ファイルは削除されます。 |
| .s 接尾辞 | | .s で終わる名前の引き数は、アセンブリソースファイルとして解釈してアセンブルし、各 .s ファイルに対する .o ファイルを生成します。 |
| .i 接尾辞 | | .i で終わる名前の引き数は、前処理が終わったソースファイルとして解釈されます
(後述の -P オプションの項を参照)。 各オブジェクトファイルのベース (ファイル) 名は引き数と同じで、拡張子が .i ではなく .o なります。 |
| -lx 形式 | | -lx という形式の引き数を指定すると、リンカーはこの引き数を読み取った時点で未解決になっている外部参照を解決しようとして、ライブラリ libx.so (Itanium ベース システム) または libx.sl (PA-RISC システム) または libx.a を検索します。コマンド行中のライブラリ名指定を読み取ったときにそのライブラリを検索するので、 -l を指定する位置は重要です。あるファイルに未解決の外部参照が含まれる場合には、コマンド行ではそのファイルより 後ろ にその外部参照の定義を含むライブラリを指定する必要があります。詳細は、 ld(1) を参照してください。 |
| -l:libx.suffix形式 | | -l:libx.suffix という形式の引き数を指定すると、リンカーはこの引き数を読み取った時点で未解決になっている外部参照を解決しようとして、ライブラリ libx.so (Itanium ベース システム) または libx.sl (PA-RISC システム) または libx.a を検索します (どちらのライブラリを検索するかは suffix で決まります)。これは -l オプションと同様ですが、 -Wl,-a オプションの現在の状態に依存しない点だけが異なります。 |
| その他の接尾辞 | | 上記以外の引き数 (.o 、 .a または .so などで終わる名前)
は、実行可能プログラムを生成するために一緒にリンクされるリロケータブルオブジェクトファイルとして解釈され、 ld ld(1) を参照)
に渡されます。 |
引き数およびオプションは、 CCOPTS 環境変数やコマンド行を通じてコンパイラに渡すことができます。コンパイラは CCOPTS の値を読み取り、これらのオプションを空白で区切られた縦線
(|) より前に指定されているものと後ろに指定されているものの
2 つの組に分割します。1 組目のオプションは cc のコマンド行パラメータの前に配置され、2 組目のオプションは cc のコマンド行パラメータの後ろに配置されます。縦線がない場合には、すべてのオプションがコマンド行パラメータの前に配置されます。例えば、 sh(1) 表記で次のように指定すると、
CCOPTS=-v | -lm
export CCOPTS
cc -p prog.c
コマンド行に次のように指定したのと等価になります。
TMPDIR 環境変数を設定すると、コンパイラはデフォルトの格納用ディレクトリ /var/tmp にではなく、この変数に設定されたディレクトリに一時ファイルを格納します。
オプション
注記 オプションの詳細は、 『HP
C Online Help』 を参照してください。 オンラインヘルプを起動するには、HTML
ブラウザを使って、以下の URL を参照してください。 file:/opt/ansic/html/$LANG/guide/index.htm (Itanium ベース
システム) または file:/opt/ansic/html/guide/$LANG/index.htm (PA-RISC
システム)
cc が認識できるオプションは、下記のオプションです。
| -b | | リンカー ld に、通常の実行可能形式ファイルの代わりに、共有ライブラリを生成することを指示します。詳細は、 ld(1), 『HP-UX リンカー & ライブラリー オンライン ユーザーズガイド』 および 『Programming on HP-UX』 マニュアルを参照してください。 |
| -c | | コンパイルのリンク編集段階を抑止し、たとえ 1 つのプログラムだけをコンパイルする場合でも、各 .c または .i ファイルに対応するオブジェクト
(.o) ファイルが生成されるようにします。 C プログラムから生成されるオブジェクトファイルは、リンクしてからでないと実行できません。 |
| -Dname=def | | |
| -Dname | | #define を使って定義したかのように、 ( ctcom の)
プリプロセッサパスに name を定義します。 |
| -E | | 指定された C ファイルのプリプロセスを行い、その結果を標準出力に出力します。 |
| -.suffix | | -E オプションで標準出力を使う代わりに、各 .c ファイルの出力を対応した .suffix ファイルに格納します。 |
| -Idir | | プリプロセッサパスでインクルードファイルを検索するために使用するアルゴリズムを変更して、 dir で指定したディレクトリ内も検索するようにします。詳細は、 HP C Online Help を参照してください。 |
| -I- | | インクルードファイルのディレクトリを、二重引用符
("") で囲まれたファイルを検索するときの開始場所として使いません。 -I を最初の開始場所として使います。 <> で囲まれたファイルは -I- の後のパスで検索されます。 |
| -lx | | 「説明」 の項の -lx および -l:libx.suffix (第 4 項と第 5 項) の説明を参照してください。 |
| -L dir | | リンカーが libx.so (Itanium ベース システム) または libx.sl (PA-RISC システム) または libx.a を検索するアルゴリズムを変更します。 -L オプションを指定すると、 ld はデフォルトのロケーションを検索する前に dir で指定されたディレクトリ内を検索します。 このオプションは、コマンド行で -l オプションの前にあった場合のみ有効です。
詳細は、 ld(1) を参照してください。 |
| -ooutfile | | リンカーの出力ファイル名 outfile を指定します。デフォルトのファイル名は a.out です。 -b と共に指定すると、共有ライブラリ名の指定になります。 -c と共に指定すると、オブジェクトファイル名の指定になります。 |
| -P | | 指定された C ファイルのプリプロセスを行い、結果を .i の接尾辞のついた対応するファイルに格納します。 |
| -s | | リンカーがシンボルテーブル情報を出力しないようにします。
詳細は、 strip(1) を参照してください。
このオプションを使用してリンクされたプログラムでは、シンボリックデバッガは使用できません。詳細は、 ld(1) を参照してください。 他のオプションと共に -s を指定すると、オプションを指定した順序とは無関係に、 -s オプションが無視されます。 |
| -S | | 指定された C ファイルをコンパイルし、アセンブリ言語による出力を、接尾辞が .s の対応するファイルに格納します。 |
| -tx,name | | サブプロセス x を name に置き換えます。または、 サブプロセス x を name に挿入します。 ここで、 x は 1 つまたは複数のサブプロセスを示す 1 つまたは複数の識別子です。
このオプションは、次の 2 種類のモードで機能します。 (1) x が 1 つの識別子である場合には、 name は新しいサブプロセスの絶対パス名を表します。 (2) x が識別子の組である場合には、 name は標準接尾辞を連接して、新しいサブプロセスの絶対パス名を組み立てるための接頭辞を表します。 x には次の値を 1 つまたは複数指定できます。 |
| a | | アセンブラ (標準接尾辞は as ) |
| c | | コンパイラ (標準接尾辞は ctcom (Itanium ベース
システム) または ccom (PA-RISC システム)) |
| l | | リンカー (標準接尾辞は ld ) |
| p | | プリプロセッサ (標準接尾辞は cpp ) |
| x | | すべてのサブプロセス。 |
| -Uname | | コンパイルのプリプロセッサ処理に先立って、 name の初期定義をすべて削除します。 |
| -v | | 冗長モードを使用可能にします。このモードでは、コンパイル処理のステップごとの記述が標準エラーに出力されます。 |
| -V | | コンパイラとリンカー (リンカーを実行した場合) のバージョン情報を表示します。 |
| -w | | 警告メッセージを抑止します。 |
| -Wx,arg1[,arg2...] |
| | | カンマで区切られた引き数をサブプロセス x に渡します。 x は -t オプションでリストした値の
1 つか d (ドライバープログラム) ですが、 x (すべてのサブプロセス)
は指定できません。 -W オプションを指定すると、標準ではサポートされない、処理系に固有のオプションをコンパイラのドライバーが認識できるようになります。 |
Itanium ベース
システムのみのオプション
| -z | | アドレス 0 に何もバインドしません。 この ld(1) オプションによって、実行時にヌルポインターが検出できます。
後述する ポインター に関する注記を参照してください。 (Itanium ベース システムのみ) |
| +dryrun | | 指定したコマンドに対するサブプロセス情報を、サブプロセスを実行することなく、生成します。
(Itanium ベース システムのみ) |
| +m[d] | | このオプションは、二重引用符 ("") で囲まれたインクルードファイルの依存情報を make(1) 用のフォーマットで出力します。 +m を指定すると、標準出力に出力されます。 +md を指定すると、接尾辞 .d のファイルに出力されます。
このファイルのディレクトリと接頭辞は、オブジェクトファイルと同一であり、 -o オプションに従います。 注記 -E を指定すると、オブジェクトファイルの生成が抑止されます。
この場合、プリプロセッサの出力は生成されません (Itanium ベース システムのみ)。 |
| +M[d] | | +m と同様ですが、 <> と二重引用符
("") で囲まれたインクルードファイルの両方が、依存関係ファイルとして出力されます
(Itanium ベース システムのみ)。 |
| +p | | 旧式の構造を許可しません。 通常、コンパイラは旧式の構造に対して警告を表示します。 +p オプションを使うと、コンパイラは旧式の構造を含むコードをコンパイルしません
(Itanium ベース システムのみ)。 |
| +time | | コンパイルのサブプロセスごとに個別の時間情報を生成します。
各サブプロセスに対し、ユーザープロセス、システムコール、および合計処理時間の各時間を算出します
(Itanium ベース システムのみ)。 |
| +uc | | 「プレーン」な文字型データを符号なし文字として扱います
(オーバーローディングとマングリングは変更しません)。 このオプションは、非修飾型 (プレーン) の文字型データを、デフォルトの符号付き文字ではなく、符号なし文字として扱う環境からアプリケーションを移植するときに役に立ちます。
コンパイル単位中のすべての非修飾データ型がこのオプションで影響を受けるので
(外部変数やシステムインタフェースを定義するヘッダーも含まれます)、1
つのプログラムで使われるインタフェースも同時にコンパイルする必要があります。 |
| +w | | 問題がありそうなすべての構造について警告を表示します。 +w オプションを指定しない場合は、ほとんど確実に問題がある構造についてのみ警告を表示します
(Itanium ベース システムのみ)。 |
| +Warg1[,arg2,...,argn] |
| | | 指定した警告メッセージだけを、選択的に抑止します。
ここに、 arg1 〜 argn には、有効なコンパイラ警告メッセージの番号を指定します
(Itanium ベース システムのみ)。 |
| +Wearg1[,arg2,...,argn] |
| | | 指定した警告メッセージ、またはエラーメッセージにつながるメッセージを選択的にエラーメッセージとして解釈します。 arg1 〜 argn には、有効なコンパイラメッセージの番号を指定します (Itanium ベース
システムのみ)。 |
システムに依存するオプション
コンパイラはオペレーティングシステムに依存する以下の追加オプションをサポートします。
| +DDdata_model | | ILP32 または LP64 データモデルのいずれかを使うコードを生成します。 data_model で定義されている値は、以下のとおりです。 | 32 | | ILP32 データモデルを使います。 int、long、ポインターのデータサイズは、32
ビットです。 | | 64 | | LP64 データモデルを使います。 int のデータサイズは、32
ビットで、long とポインターのデータサイズは、64 ビットです。 プリプロセッサに対し、__LP64__
を定義します。 |
|
| +DSmodel | | 指定した model に調整された命令スケジューラを使います。 オプションを使わない場合は、コンパイラはプログラムをコンパイルしているコンピュータのアーキテクチャ用の命令スケジューラを使います。 |
オプション
(その他)
定義されていないその他のオプションを使うと、標準エラーに警告が表示されます。
他の引き数には HP C と互換のオブジェクトファイルがありますが、これらのオブジェクトファイルは、通常、以前の cc を実行したとき、または
HP cc 互換ルーチンのライブラリによって生成されます。 これらのファイルは、指定したコンパイルの結果と共に、(指定した順番で)
リンクされ、 a.out という名前の実行形式プログラムを生成します。
ポインター
NULL (ゼロ) ポインターのオブジェクトへのアクセスは、技術的には不正ですが、多くのシステムは過去にそれを許していました。
コードの移植性を最大限保証するために、以下のサポートを行っています。
ハードウェアでアドレス 0 から読み込んだとき (少なくとも、8 ビット、または
16 ビットにアクセスしたとき) に 0 を返すことが許されている場合、 -z フラグが存在しなければ、0
を返す必要があります。 -z フラグを指定した場合は、アドレス
0 にアクセスした場合、 SIGSEGV を生成します。
アドレス 0 からの読み込みは許されていたとしても、アドレス 0 への書き込みはエラーとして検出されます。
ハードウェアがアドレス 0 への書き込みを 0 で初期化する、または 0
にロックすることを保証できない場合には、ハードウェアは -z フラグが常に設定されているように動作する必要があります。
多言語化対応
環境変数
LANG は、表示されるメッセージの言語を決定します。
環境変数 LC_CTYPE が指定されていないか、または設定値が空の文字列の場合には、指定がないかまたは値が空の各変数のデフォルトとして LANG の値が使用されます。 LANG を指定しないか、またはその値として空の文字列を設定すると、 LANG の代わりに、デフォルトの C (lang(5) を参照) が使用されます。
不当な値が設定されている国際化変数があると、 C はすべての国際化変数の値が C になっているかのように動作します。 environ(5) を参照してください。
aCC_MAXERR で設定するエラーの最大数を超えると、コンパイラはコンパイルを終了させます
(Itanium ベース システムのみ)。
SDKROOT はツールセットコンポーネントのすべてのリファレンスの接頭辞として使われ、ネイティブではない開発キット、または代替場所にインストールされたツールセットを使う場合に設定しておく必要があります。
ツールセットコンポーネントには、コンパイラドライバー、コンパイラアプリケーション、プリプロセッサ、リンカー、およびオブジェクトファイルツールなどがあります。
TARGETROOT はターゲットセットコンポーネントのすべてのリファレンスの接頭辞として使われ、ネイティブではない開発キットを使う場合に設定しておく必要があります。 ターゲットセットコンポーネントには、ヘッダーファイル、アーカイブライブラリ、および共有ライブラリなどがあります。
サポートされる国際的コードセット
シングルバイトおよびマルチバイトの文字コードセットがサポートされます。
診断
コンパイラ自身が生成する診断は、それだけを見ても意味が分かるようになっています。
ときどき、アセンブラ、またはリンクエディタがメッセージを生成する場合があります。
cc の処理完了前にエラーが発生すると、ゼロ以外の値が返されます。
そうでなければ、ゼロが返されます。
依存関係
他のオプションと共に -s を指定すると、オプションを指定した順序とは無関係に、 -s オプションが無視されます。
オペレーティングシステムに依存するオプション (32 ビットデータモデル、
または 64 ビットデータモデル用の +DDdata_model と、命令スケジューラ用の +DSmodel) の詳細は、上述の システムに依存するオプション の項を参照してください。
ファイル
| file.c | | C 入力ファイル |
| file.i | | 以前にプリプロセスが行われた cc 入力ファイル |
| file.o | | オブジェクトファイル |
| file.so | | Itanium ベース システムで -b によって生成された共有ライブラリ |
| file.sl | | PA-RISC システム で -b によって生成された共有ライブラリ |
| a.out | | リンクされて出力される実行可能ファイル |
| /var/tmp/* | | コンパイラが使用する一時ファイル (Itanium ベース
システム) |
| /var/tmp/ctm* | | コンパイラが使用する一時ファイル (PA-RISC システム) |
| /usr/ccs/bin/cc | | C ドライバー |
| /usr/ccs/bin/cc_bundled |
| | | C ドライバー |
| /usr/ccs/lbin/ctcom |
| | | C コンパイラ (Itanium ベース システム) |
| /usr/ccs/lbin/ccom |
| | | C コンパイラ (PA-RISC システム) |
| /usr/ccs/lbin/cpp |
| | | .s ファイルをアセンブルするプリプロセッサ |
| /usr/lib/nls/msg/$LANG/aCC.cat |
| | | C コンパイラのメッセージカタログ (Itanium ベース
システム) |
| /usr/lib/nls/msg/$LANG/cc.cat |
| | | C コンパイラのメッセージカタログ (PA-RISC システム) |
| /usr/ccs/bin/as | | アセンブラ (as(1)を参照) |
| /usr/ccs/bin/ld | | リンクエディター (ld(1)を参照) |
| /usr/ccs/lib/crt0.o |
| | | 実行時起動ルーチン (PA-RISC システム) |
| /usr/include | | #include ファイルの標準ディレクトリ |
その他のライブラリ
| /usr/lib/hpux32/libc.so |
| | | 標準 C ライブラリ、 『 HP-UX リファレンス セクション (3)』 を参照してください。
(Itanium ベース システム) |
| /usr/lib/hpux64/libc.so |
| | | 標準 C ライブラリ、 『 HP-UX リファレンス セクション (3)』 を参照してください。
(Itanium ベース システム) |
| /usr/lib/libc.a | | 標準 C ライブラリ (アーカイブバージョン)、 『 HP-UX リファレンス セクション (3)』 を参照してください。
(PA-RISC システム) |
| /usr/lib/libc.sl | | 標準 C ライブラリ (共有バージョン)、 『 HP-UX リファレンス セクション (3)』 を参照してください。
(PA-RISC システム) |
| /usr/lib/hpux32/libm.a |
| | | 数学ライブラリ (Itanium ベース システム) |
| /usr/lib/hpux64/libm.a |
| | | 数学ライブラリ (Itanium ベース システム) |
| /usr/lib/libm.a | | 数学ライブラリ (PA-RISC システム) |
| /usr/lib/hpux32/libdld.so |
| | | ダイナミックローダーライブラリ (Itanium ベース システム) |
| /usr/lib/hpux64/libdld.so |
| | | ダイナミックローダーライブラリ (Itanium ベース システム) |
| /usr/lib/libdld.sl |
| | | ダイナミックローダーライブラリ (PA-RISC システム) |
| /usr/lib/hpux32/dld.so |
| | | ダイナミックローダー (Itanium ベース システム) |
| /usr/lib/hpux64/dld.so |
| | | ダイナミックローダー (Itanium ベース システム) |
| /usr/lib/dld.so | | ダイナミックローダー (PA-RISC システム) |
参照
オンラインヘルプ
オンラインヘルプを起動するには、デフォルトの HTML ブラウザを使って、または、任意の
HTML ブラウザを使って、次の URL を参照してください。 file:/opt/ansic/html/$LANG/guide/index.htm (Itanium ベース
システム) または file:/opt/ansic/html/guide/$LANG/index.htm (PA-RISC
システム)
その他のトピックスは、『Compiler Pragmas, Floating Installation
and Implementation Defined aspects of the compiler』を参照してください。
次の Web サイトにも情報があります。 http://www.hp.com/go/c
プロファイリングとデバッギングのツール
| gprof(1) | | コールグラフのプロファイルデータを表示します。 |
| monitor(3C) | | 実行形式のプロファイルを準備します |
| wdb(1) | | C、C++ および Fortran 用シンボリックデバッガー |
| gdb(1) | | C、C++ および Fortran 用シンボリックデバッガー |
| adb(1) | | アブソリュートデバッガ |
システムツール
| as(1) | | アセンブリコードをマシンコードに変換します。 |
| cpp(1) | | C 言語プリプロセッサを実行します。 |
| cc(1) | | C コンパイラ |
| ld(1) | | リンクエディタを実行します。 |
指導書および標準文献
『American National Standard for Information Systems - Programming language C, ANS X3.159-1989』
『HP C Online help』 も参照してください。