インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

makefile の変更

makefile を使用して Microsoft* アプリケーションをビルドする場合、インテル® C++ コンパイラーを使用するように、コンパイラー変数の値を変更する必要があります。また、CPPFLAGS で指定されているオプションも確認してください。簡単な例を次に示します。

Microsoft* makefile の例

# プログラム名
  PROGRAM = area.exe 

# ソースファイル名
  CPPSOURCES = area_main.cpp area_functions.cpp 

# オブジェクト・ファイル名
  CPPOBJECTS = area_main.obj area_functions.obj 

# Microsoft* コンパイラー・オプション
  CPPFLAGS = /RTC1 /EHsc 

# Microsoft* C++ コンパイラーを使用する
  CPP = cl 

# リンク・オブジェクト
  $(PROGRAM): $(CPPOBJECTS)
     link.exe /out:$@ $(CPPOBJECTS) 

# ビルド・オブジェクト
  area_main.obj: area_main.cpp area_headers.h 
  area_functions.obj: area_functions.cpp area_headers.h 

# クリーン
  clean:  del  $(CPPOBJECTS) $(PROGRAM)

インテル® C++ コンパイラー用に変更した makefile

インテル® C++ コンパイラーで nmake を実行する前に、環境変数を設定する必要があります。この例では、コンパイラー名のみが変更されています。

# プログラム名
  PROGRAM = area.exe 

# ソースファイル名
  CPPSOURCES = area_main.cpp area_functions.cpp 

# オブジェクト・ファイル名
  CPPOBJECTS = area_main.obj area_functions.obj 

# # インテル® C++ コンパイラー・オプション
  CPPFLAGS = /RTC1 /EHsc 

# インテル® C++ コンパイラーを使用する
  CPP = icl

# リンク・オブジェクト
  $(PROGRAM): $(CPPOBJECTS)
     link.exe /out:$@ $(CPPOBJECTS) 

# ビルド・オブジェクト
  area_main.obj: area_main.cpp area_headers.h 
  area_functions.obj: area_functions.cpp area_headers.h 

# クリーン
  clean:  del  $(CPPOBJECTS) $(PROGRAM)

変更された makefile では、nmake の出力は以下のようになります。

Microsoft (R) Program Maintenance Utility Version 8.00.50727.42 
Copyright (C) Microsoft Corporation.All rights reserved.

        icl /RTC1 /EHsc  /c area_main.cpp area_functions.cpp 

IA-32 対応アプリケーション用 インテル(R) C++ コンパイラー
Copyright (C) 1985-2006 Intel Corporation.All rights reserved. 

area_main.cpp 
area_functions.cpp
        link.exe /out:area.exe area_main.obj area_functions.obj 

Microsoft (R) Incremental Linker Version 8.00.50727.42 
Copyright (C) Microsoft Corporation.All rights reserved.

makefile での IPO の使用

デフォルトでは、IPO はコンパイラーによって使用されるプロシージャー間の情報を含む "仮の" オブジェクト・ファイルを生成します。これらのオブジェクト・ファイルを使用してスタティック・ライブラリーをリンクまたは作成する場合、特定のインテルにより提供されるツールが必要になります。これらのツールを makefile で使用するには、"link" を "xilink" に、"lib" を "xilib" に置換します。

# プログラム名
  PROGRAM = area.exe 

# ソースファイル名
  CPPSOURCES = area_main.cpp area_functions.cpp 

# オブジェクト・ファイル名
  CPPOBJECTS = area_main.obj area_functions.obj 

# # インテル® C++ コンパイラー・オプション
  CPPFLAGS = /RTC1 /EHsc /Qipo

# インテル® C++ コンパイラーを使用する
  CPP = icl

# リンク・オブジェクト
  $(PROGRAM): $(CPPOBJECTS)
     xilink.exe /out:$@ $(CPPOBJECTS) 

# ビルド・オブジェクト
  area_main.obj: area_main.cpp area_headers.h 
  area_functions.obj: area_functions.cpp area_headers.h 

# クリーン
  clean:  del  $(CPPOBJECTS) $(PROGRAM)