インテル® MKL 11.3 ユーザーズガイド

インテル® 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. マクロが定義されているファイルをコードにインクルードします。
    • mkl.h (C/C++ の場合)
    • mkl.fi (Fortran の場合)
  2. [オプション] 次のプリプロセッサー宣言子を使用してマクロが定義されているかどうかを確認します。
    • #ifdef および #endif (C/C++ の場合)
    • !DEC$IF DEFINED および !DEC$ENDIF (Fortran の場合)
  3. 次のプリプロセッサー宣言子を使用してコードを条件付きでインクルードします。
    • #if および #endif (C/C++ の場合)
    • !DEC$IF および !DEC$ENDIF (Fortran の場合)

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

C/C++:

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

Fortran:

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