コンパイラー・モード

XL C/C++ コンパイラー呼び出しコマンドのさまざまな形式が、さまざまなレベルの C および C++ 言語をサポートしています。

たいていの場合、C++ ソース・ファイルをコンパイルするには xlc++ コマンドを、 C ソース・ファイルをコンパイルするには xlc コマンドを使用する必要があります。 C および C++ オブジェクト・ファイルが両方ともある場合は、 xlc++ を使用してリンクしてください。

ユーザーの環境で必要であれば、コマンドの別の形式を使用することができます。各種コンパイラー呼び出しコマンドは、以下のとおりです。


コンパイラー呼び出し
基本 特殊
xlC xlC_r
xlc++ xlc++_r
xlc xlc_r
cc cc_r
c99 c99_r
c89 c89_r
xlCcore xlCcore_r

基本コンパイラー呼び出しコマンドは、上記の各行の最初の項目として現れます。以下の基準で、基本呼び出しを選択してください。

xlC
xlc++
両方ともソース・ファイルが C++ 言語ソース・コードとしてコンパイルされるように、コンパイラーを呼び出します。いずれかのソース・ファイルが C++ である場合、適正なランタイム・ライブラリーとリンクさせるには、この呼び出しを使用しなければなりません。ソース・ファイルは、 -qalias=ansi セットを使用してコンパイルされます。

サフィックス .c を持つファイルは、-+ コンパイラー・オプションを使用していないと見なし、-qlanglvl=extc89 が有効なとき、C 言語ソース・コードとしてコンパイルされます。

xlc C ソース・ファイル用のコンパイラーを呼び出します。この呼び出しでは、以下のコンパイラー・オプションが暗黙指定されます。

  • -qlanglvl=extc89
  • -qalias=ansi
  • -qcpluscmt
  • -qkeyword=inline
cc C ソース・ファイル用のコンパイラーを呼び出します。この呼び出しでは、以下のコンパイラー・オプションが暗黙指定されます。

  • -qlanglvl=extended
  • -qnoro
  • -qnoroconst
c99 ISO C99 言語フィーチャーをサポートする、C ソース・ファイルのコンパイラーを呼び出します。 ISO C99 規格に完全に適合させるためは、C99 準拠の ヘッダー・ファイルとランタイム・ライブラリーが存在していなければなりません。この呼び出しでは、以下のオプションが暗黙指定されます。

  • -qlanglvl=stdc99
  • -qalias=ansi
  • -qstrict_induction
  • -D_ANSI_C_SOURCE
  • -D_ISOC99_SOURCE
  • -D__STRICT_ANSI__
c89 ISO C89 言語フィーチャーがサポートされる、C ソース・ファイルのコンパイラーを呼び出します。この呼び出しでは、以下のオプションが暗黙指定されます。

  • -qlanglvl=stdc89
  • -qalias=ansi
  • -qstrict_induction
  • -qnolonglong
  • -D_ANSI_C_SOURCE
  • -D__STRICT_ANSI__
ANSI 規格 (ISO/IEC 9899:1990) に厳密に準拠させる場合は、この呼び出しを使用してください。
xlCcore
xlc++core
両方とも xlC および xlc++ のために上記で説明したコンパイラーを呼び出しますが、このコンパイラーはランタイム・ライブラリーのコアにのみリンクします。 XL C/C++ によって提供されるランタイム・ライブラリー以外のランタイム・ライブラリーにアプリケーションをリンクしたい場合は、この呼び出しを使用します。

IBM XL C/C++ Advanced Edition for Linux は、下記のように、基本コンパイラー呼び出しで、_r バリエーションを提供します。

_r- サフィックス呼び出し すべての _r サフィックス呼び出しは、追加のマクロ名 _THREAD_SAFE および __VACPP_MULTI__ を定義し、 -lpthreads を追加します。 コンパイラー・オプション -qthreaded も追加されます。Posix スレッド化アプリケーションを作成したい場合は、これらのコマンドを使用してください。

関連タスク

コンパイラーの起動

関連参照

コンパイラーのコマンド行オプション
汎用プラグマ
並列処理を制御するプラグマ
threaded IBM Copyright 2003