インクルード・ファイル用のパス名の指定

#include プリプロセッサー・ディレクティブを使用して、あるソース・ファイルを別のファイルに組み込むときには、組み込まれるファイル名を指定しなければなりません。絶対パス名または相対パス名を使用して、ファイル名を指定することができます。


相対パス名を使用したインクルード・ファイルのディレクトリー検索順序

C および C++ 言語では、 #include プリプロセッサー・ディレクティブの 2 つのバージョンを定義します。 IBM XL C/C++は、これらを両方ともサポートします。 #include ディレクティブで、インクルード・ファイル名は区切り文字 < > または " " で囲まれています。

選択した区切り文字によって、特定のインクルード・ファイル名を探し出すのに使用される検索パスが決定されます。コンパイラーは、インクルード・ファイルが見つかるまで、以下のように検索パスの全ディレクトリーでそのインクルード・ファイルを検索します。

#include の型 ディレクトリー検索順序
#include <file_name>
  1. コンパイラーはまず、-Idirectory コンパイラー・オプションによって指定された各ユーザー・ディレクトリーで、コマンド行に表示される順に file_name を検索します。
  2. C++ コンパイルの場合、コンパイラーは、-qcpp_stdinc および -qgcc_cpp_stdinc コンパイラー・オプションによって指定されたディレクトリーを検索します。
  3. 最後に、コンパイラーは -qc_stdinc および -qgcc_c_stdinc コンパイラー・オプションによって指定されたディレクトリーを検索します。
#include "file_name"
  1. コンパイラーはまず、現行のソース・ファイルが常駐しているディレクトリーでインクルード・ファイルを検索します。現行のソース・ファイルは、ディレクティブ #include "file_name" を含むファイルです。
  2. コンパイラーはそれから、#include <file_name> の上記の検索順序に従ってインクルード・ファイルを検索します。

注:

  1. file_name は、組み込まれるファイル名を指定し、必要に応じて、そのファイルへの完全または部分ディレクトリー・パスを含むことができます。

  2. #include ディレクティブの 2 つのバージョンの唯一の違いは、 " " (ユーザー組み込み) バージョンでは、最初に現行ソース・ファイルの常駐するディレクトリーから検索を開始するということです。一般的に、標準ヘッダー・ファイルは < > (システム組み込み) バージョンを使用して組み込み、ユーザーの作成するヘッダー・ファイルは、" " (ユーザー組み込み) バージョンを使用して組み込みます。

  3. -qstdinc および -qidirfirst オプションと一緒に、 -Idirectory オプションを指定することにより、検索順序を変更することができます。

    該当する場合は、-Idirectory オプションで指定したディレクトリーと、現行のソース・ファイル・ディレクトリーのみを検索するため、 -qnostdinc オプションを使用します。

    ほかのディレクトリーを検索する前に、 -Idirectory オプションで指定したディレクトリーを検索するには、 #include "file_name" ディレクティブと共に -qidirfirst オプションを使用します。

    ディレクトリー検索パスを指定するには、-I オプションを使用します。

関連参照

I
c_stdinc
cpp_stdinc
gcc_c_stdinc
gcc_cpp_stdinc
idirfirst
stdinc IBM Copyright 2003