インテル® MKL 2017 デベロッパー・ガイド

インテル® MKL のバージョン依存コンパイルでの定義済みプリプロセッサー・シンボルの使用

プリプロセッサー・シンボル (マクロ) は、コンパイルする前にプログラムの値を置換します。この処理は、前処理フェーズで行います。

次に、利用可能なプリプロセッサー・シンボルを示します。

定義済みプリプロセッサー・シンボル

説明

__INTEL_MKL__

インテル® MKL のメジャーバージョン

__INTEL_MKL_MINOR__

インテル® MKL のマイナーバージョン

__INTEL_MKL_UPDATE__

インテル® MKL のアップデート番号

INTEL_MKL_VERSION

インテル® MKL のフルバージョン

INTEL_MKL_VERSION = (__INTEL_MKL__*100+__INTEL_MKL_MINOR__)*100+__INTEL_MKL_UPDATE__

これらのシンボルを使用することで、ライブラリーの特定のバージョンで追加された新しい機能を使用するコードの条件付きコンパイルが有効になります。

条件付きコンパイルを実行するには、次の操作を行います。

  1. コンパイラーに応じて、マクロが定義されているファイルをコードにインクルードします。

    C/C++ コンパイラー:

    mkl_version.h

    または mkl.h (mkl_version.h を含む)

    インテル® Fortran コンパイラー:

    mkl.fi

    プリプロセッサーが有効な Fortran コンパイラー:

    mkl_version.h

    プリプロセッサーを有効にするオプションは、コンパイラーのドキュメントを参照してください。

  2. [オプション] 次のプリプロセッサー・ディレクティブを使用してマクロが定義されているかどうかを確認します。
    • #ifdef および #endif (C/C++ の場合)
    • !DEC$IF DEFINED および !DEC$ENDIF (Fortran の場合)
  3. 次のプリプロセッサー・ディレクティブを使用してコードを条件付きでインクルードします。
    • #if および #endif (C/C++ の場合)
    • !DEC$IF および !DEC$ENDIF (Fortran の場合)

この例は、インテル® MKL の固有のバージョンに対して条件付きでコードセグメントをコンパイルする方法を示しています。ここで対象としているバージョンは 11.2 Update 4 です。

インテル® Fortran コンパイラー:

include "mkl.fi"
!DEC$IF DEFINED INTEL_MKL_VERSION
!DEC$IF INTEL_MKL_VERSION .EQ. 110204
* 	条件付きでコンパイルするコード
!DEC$ENDIF
!DEC$ENDIF

C/C++ コンパイラー。プリプロセッサーが有効な Fortran コンパイラー:

#include "mkl.h"
#ifdef INTEL_MKL_VERSION
#if INTEL_MKL_VERSION ==  110204
... 	条件付きでコンパイルするコード
#endif
#endif