インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
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++ コンパイラーで 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.
デフォルトでは、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) |