この製品には、インテル® C++ コンパイラー、インテル® デバッガー、Microsoft* ビジュアル開発環境への統合ユーティリティー、およびコード・カバレッジ・ツールとテスト・プライオリタイゼーション・ツールが含まれています。
インテル・コンパイラーは、一般的なプロセッサーとオペレーティング・システムを組み合わせた、3 つのプラットフォームをサポートしています。このセクションでは、本ドキュメント、インストール手順、およびサポートサイトでプラットフォームの記述に使用されている用語について説明します。
この製品には以下のコンポーネントが含まれています。
<install-dir>
として表記されているデフォルトのインストール・ディレクトリーは、C:\Program Files\Intel
です。C++ 9.1 コンパイラーは、Compiler\C++\9.1
サブフォルダーにインストールされます。
テクニカルサポートを受けたり、製品のアップデート・モジュールを入手するには、製品を登録する必要があります。製品の登録方法は、この後にある「テクニカルサポート」セクションを参照してください。
このセクションでは、インテル C++ コンパイラー 9.1 の新機能および変更点について説明します。インテル・デバッガーのリリースノートも参照してください。
以下に、バージョン 9.0 の最初のリリースから変更または追加されたコマンドライン・オプションをリストします。これらのオプションの詳細な情報は、コンパイラーのドキュメントを参照してください。
/G2-p9000
/QaxT
/QdD
/QdM
/QdN
/Qinline-factor=<n>
/Qinline-forceinline
/Qinline-max-per-compile=<n>
/Qinline-max-per-routine=<n>
/Qinline-max-size=<n>
/Qinline-max-total-size=<n>
/Qinline-min-size=<n>
/Qopt-mem-bandwidth<n>
/Qsafeseh[-]
/Qvc7.1
または /Qvc8
の場合はオン)/Qvc8
/QxT
バージョン 9.1 では、Microsoft Visual Studio 2005 Standard Edition、Professional Edition および Team System Edition との統合がサポートされました。IA-32 およびインテル EM64T ベース・アプリケーションの開発は、IA-32 およびインテル EM64T 対応システムで、Microsoft Visual Studio 2005 の 3 つのエディションを使用して行うことができます。Microsoft Visual C++* 2005 Express Edition を使用した場合、コマンドラインで IA-32 アプリケーションの開発のみ行うことができます。Itanium ベース・アプリケーションの開発は、IA-32 およびインテル EM64T 対応システムで、Microsoft Visual Studio 2005 Team System Edition を使用して行うことができます。Microsoft Visual Studio 2005 を Itanium ベース・システムにインストールすることはできません。
Microsoft Visual Studio 2005 Standard Edition 以上のエディションを使用してインテル EM64T または Itanium ベース・アプリケーションを開発する場合、あるいはコンパイラーをインストールするときに Microsoft Visual Studio 2005 とのコマンドライン互換性を選択した場合、Microsoft Platform SDK (Software Development Kit) を別にインストールする必要はありません。
Microsoft Visual Studio 2005 をインストールする際、クロスプラットフォーム開発ツールをインストールするオプションが表示されます。このオプションを選択すると、必要なファイル (クロスプラットフォーム・ヘッダー、ツール、ライブラリーなど) がインストールされます。別途スタンドアローン Platform SDK は必要ありません。
Visual Studio 2005 でインストールされた既存の Platform SDK を参照する場合は、次のいずれかの手順を行ってください。
"C:\Program Files\Microsoft Platform SDK\SetEnv.bat"
"C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\devenv" /useenv
最初のコマンドは、使用している Microsoft Platform SDK 用の環境セットアップ・プロシージャーを起動し、2 つ目のコマンドは、最初のコマンドで設定された環境を使用して Visual Studio 開発環境を開始します。ファイルパスをシステムの正しいパスに変更します。
必ず一貫した方法でクロスプラットフォーム・ツールをインストールして使用してください。コマンドライン・ビルドではスタンドアローン Platform SDK のツールやライブラリーを参照して、コンパイラー統合では Visual Studio 2005 のツールを参照するようにすることが可能です。この場合、コマンドラインからのコンパイルと Visual Studio 内部からのコンパイルで異なる開発環境が使用され、異なる結果が生成されます。
注: 同様の状況は、ネイティブ・コンパイラーと Visual Studio の異なるバージョンを使用してアプリケーション開発を行うと発生します。例えば、コンパイラー統合では Visual Studio .NET 2003 などの Visual Studio の以前のバージョンと関連付けられていても、コマンドラインでは Visual Studio 2005 と関連付けられているツールとライブラリーを参照することができます。
マニフェストは Visual Studio 2005 の機能で、アプリケーションのランタイム依存性を記述する XML ファイルです。インテル C++ コンパイラーは、マニフェスト・ファイルの生成をサポートしています。マニフェスト・ファイルの拡張子は .manifest
で、通常、EXE または DLL と同じ場所に配置されます。マニフェスト・ファイルは EXE または DLL に組み込むこともできますが、インクリメンタル・リンクが有効な場合には組み込むことはできません。このような場合、次の警告が表示されます。
Warning: Manifest file not embedded because incremental linking property is specified.
To embed manifest file, set "Linker>General>Enable Incremental Linking" to "No".
バージョン 9.0 では、Microsoft Visual Studio .NET 2002 または 2003 環境で、システムにインストールされている異なるバージョンのインテル C++ コンパイラーを選択できるようになりました。使用するコンパイラーおよびライブラリーのバージョンを選択するには、[ツール] - [オプション] - [インテル C++] - [ディレクトリー] をクリックして、 異なるインテル C++ コンパイラーのバージョンを選択するオプションを表示します。サポートされている (以前の) バージョンは、9.0 および 8.1 です。9.0 および 8.1 のバージョンは Visual Studio 2005 をサポートしていないため、この機能は Visual Studio 2005 からは利用できません。
/fp
オプション/fp
オプションは、浮動小数点演算のセマンティクスを制御します。デフォルトは、/fp:fast
です。この場合、コンパイラーは、括弧外の再結合を含む強力な最適化を行います。計算の再結合について言語標準の規則を厳格に守りつつ最適なパフォーマンスを得るには、/fp:precise
を使用してください。
asm
のサポートインテル EM64T ベース・アプリケーション開発用 コンパイラーは、インテル® MMX® および X87 命令を含むインライン asm
をサポートするようになりました。インテル MMX 命令は組み込み関数からアクセスすることもできます。
/flavor
オプションがサポートされていない異なる命令セットの使用を指定する Microsoft Visual C++ の /flavor
オプションは、インテル C++ コンパイラーではサポートされていません。代わりに、/Qx
または /Qax
を使用してください。
インテル C++/Fortran コンパイラー Windows 版のバージョン 9.1 から、インテル Array Visualizer コンポーネントはコンパイラーに含まれなくなりました。Array Visualizer の最新バージョンは、無料でダウンロードできます。Array Visualizer を使用するのにインテル・コンパイラーのライセンスは必要ありません。今後、Array Visualizer の保守および新バージョンの開発を行う予定はありません。Array Visualizer ユーザー用のフォーラム (http://softwareforums.intel.com/ids/board?board.id=Visualizer) (英語) は引き続き利用可能です。詳細は、フォーラムを参照してください。
インテル C++/Fortran コンパイラーの将来のリリースでは、Microsoft Visual Studio .NET 2002 との統合はなくなる予定です。Visual Studio .NET 2002 を使用している場合、2006 年 12 月末までに Visual Studio .NET 2003 または Visual Studio 2005 にアップグレードすることを推奨します。
詳細は、「インストール・ガイド」を参照してください。
インテル・コンパイラーは、一般的なプロセッサーとオペレーティング・システムを組み合わせた、3 つのプラットフォームをサポートしています。このセクションでは、本ドキュメント、インストール手順、およびサポートサイトでプラットフォームの記述に使用されている用語について説明します。
「ネイティブ」とは、アプリケーションを実行するプラットフォームと同じプラットフォームでアプリケーションをビルドする (例えば、IA-32 システムで実行するアプリケーションを IA-32 システムでビルドする) ことを指します。「クロスプラットフォーム」または「クロスコンパイル」とは、アプリケーションを実行するプラットフォームとは異なる種類のプラットフォームでアプリケーションをビルドする (例えば、Itanium ベース・システムで実行するアプリケーションを IA-32 システムでビルドする) ことを指します。クロスプラットフォーム開発のすべての組み合わせがサポートされているわけではありません。また、一部の組み合わせでは、オプションのツールとライブラリーをインストールする必要があります。
サポートされているホスト (アプリケーションをビルドするシステム) とターゲット (アプリケーションを実行するシステム) の組み合わせを次に示します。
ホスト\ターゲット | IA-32 | インテル EM64T 対応システム |
Itanium ベース・システム |
---|---|---|---|
IA-32 | ○ |
○ |
○ |
インテル EM64T 対応システム | ○ |
○ |
○ |
Itanium ベース・システム | × |
× |
○ |
注: 上の表は、コマンドライン・ビルド環境の組み合わせを示しています。Microsoft Visual C++ 6.0、Visual Studio 98、Visual Studio .NET 2002 および 2003 は、IA-32 アプリケーションの開発のみをサポートしています。Itanium ベース・アプリケーションのクロスプラットフォーム開発は、Microsoft Visual Studio 2005 Team System Edition でのみサポートされています。Microsoft Visual Studio 2005 を Itanium ベース・システムにインストールすることはできません。
注:
アプリケーションで使用している機械語命令が特定のオペレーティング・システムやプロセッサーでサポートされているかどうかは、アプリケーション開発者自身の責任で確認してください。
error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 ___tmainCRTStartup で参照されました
このエラーは、以下のプロジェクト・プロパティーが設定されている場合に発生します。
回避策は次のとおりです。
プロジェクト・プロパティー [リンカー] - [詳細] - [エントリーポイント] = [wWinMainCRTStartup] に設定する
error PRJ0019: ツールはエラー コードを返しました
この問題を回避するには、[プロジェクトのプロパティー] - [ビルドイベント] - [ビルド後のイベント] で [コマンドライン] に次の 2 つのコマンドを追加してください。
mt /nologo /manifest $(TargetPath).manifest /outputresource:"$(TargetPath);#2"
C:/Winnt/System32/regsvr32 /s /c "$(TargetPath)"
IDB
) に関する制限
/Zi
をインライン展開と組み合わせて使用すると、コンパイル時間が長くなります。/Qipo、/Qip
を指定した場合や /O1
以上のオプションレベルで C++/C99
プロブラムをコンパイルする場合、インライン展開が発生します。これはデバッグ情報が生成されるためです。多くのアプリケーションでは、このコンパイラー・オプションの組み合わせで、コンパイル時間やコンパイル時のメモリー容量が増加することはありません。
Microsoft Visual Studio 2005 では、スタティック、シングルスレッド Visual C++ ライブラリー libc.lib
および libcd.lib
が削除されました。インテル C++ コンパイラーがコマンドラインで Visual Studio 2005 を使用するように指定した場合、以前のバージョンではデフォルトだったスタティック、シングルスレッド・ライブラリーを使用してアプリケーションをビルドしようとすると、コンパイラーは警告を表示します。
icl: warning: option '/Qvc8' or higher used with '/ML[d]' is not supported
/Qvc8
は、Visual Studio 2005 とのコマンドライン統合を指定した場合、インストール時に icl.cfg
に追加されます。このオプションは、Visual Studio 2005 を使用していることを icl
コンパイラー・ドライバーに知らせます。
このオプションを使用してアプリケーションをリンクしようとすると、リンカーは libc.lib
または libcd.lib
が見つからないというエラーを表示します。次に例を示します。
LINK : fatal error LNK1104: ファイル 'LIBC.lib' を開けません
このエラーを解決するには、ランタイム・ライブラリーのスレッド/DLL フォームを指定してください。次に例を示します。
/MT
/MD
他に何も指定していない場合、Visual Studio 2005 で icl
を使用したときのデフォルトは /MT
です。
この問題は、Microsoft Visual Studio IDE からビルドされるプロジェクトにも影響します。この場合、プロジェクトのプロパティー [C/C++] - [コード生成] - [ランタイム・ライブラリー] を新しい値に変更してください。
Visual Studio で作成したインテル C++ プロジェクト/ソリューションをコマンドラインまたはバッチファイルからビルドする場合は、Visual Studio ランチャー、devenv.exe を使用してください。 利用可能なコマンドライン・オプションを表示するには、devenv /?
と入力してください。Microsoft ツール MSBuild および Team Build は、インテル C++ プロジェクトのビルドには現在使用できません。
/Qc99
を使用した場合の _Complex
のコンパイルエラー Microsoft Visual Studio 2005 ヘッダーで /Qc99
オプションを使用すると、次のコンパイルエラーが表示されます。
C:/Program Files/Microsoft Visual Studio 8/VC/include/math.h(135): error: _Complex can only be used with float, double, or long double types _CRTIMP double __cdecl _cabs(__in struct _complex _Complex); ^
この問題は、_Complex
は C99 ではキーワードですが、math.h Microsoft ヘッダーでは cabs プロトタイプの識別子として使用されるために発生します。この問題を回避するには、このヘッダーをインクルードする前後に以下のように条件を追加してください。
#define _Complex
#include <math.h>
#undef _Complex
(/Qax*)
使用時のデバッグ情報の制限/Qax{W|N|B|P}
を使用してコンパイルを行うと、各関数について IA-32 汎用コードと CPU 特有のコードの 2 種類のコードが生成されます。各関数のシンボルは自動 CPU ディスパッチ・ルーチンを参照して、ランタイムに実行するコードセクションを決定します。これらの関数にデバッガーのブレークポイントが名前でセットされると、ディスパッチ・ルーチンでアプリケーションが停止します。その結果、デバッグ時に予測できない動作が発生します。この問題は、インテル・デバッガーおよびインテル・コンパイラーの将来のバージョンで修正される予定です。
/Oy
オプションを使用してビルドされた IA-32 プログラムをデバッグまたはトレースバック表示できない/Oy
を使用してコンパイルを行うと、IA-32 EBP レジスターはフレームポインターではなく汎用レジスターとして使用されます。デバッガーおよびトレースバック・ハンドラーは、この方法でコンパイルされた関数への呼び出しを含むスタックから適切にスタックを戻すことができません。
Itanium ベース・システムまたはインテル EM64T ベース・システムで Microsoft Platform SDK を使用してビルドを行うと、以下のようなリンクエラーが発生します。
LIBC.lib(a_str.obj) : error LNK2001: 外部シンボル __security_cookie は未解決です
[...]
LIBC.lib(a_str.obj) : error LNK2001: 外部シンボル __security_check_cookie は未解決です
[...]
この問題は、Microsoft Platform SDK のバージョン間の不一致によって発生します。インテルでは、この問題を解決するために Microsoft と作業を行っています。この問題を回避するには、以下のいずれかの方法でアプリケーションをリンクしてください。
icl hello.c /MD
icl hello.c -link bufferoverflowu.lib
icl hello.c /MT bufferoverflowu.lib
Win32 API を使用する一般的なユーザーモードのアプリケーションでは、bufferoverflowu.lib
を使用してください。Win32 API を使用できないユーザーモード・サブシステムやサービス用のアプリケーションでは、代わりに bufferoverflow.lib
を使用してください。カーネルモード・アプリケーションおよびドライバーは、bufferoverflowk.lib
にリンクしてください。
インテルでは、お客様からのフィードバックを非常に重視しております。本製品で提供されるツールについてのテクニカルサポートおよび FAQ や製品のアップデート情報を含むテクニカル情報を受けるには、https://premier.intel.com (英語) でインテル・プレミアサポート・アカウントに登録してください。https://registrationcenter.intel.com/ で登録を行います。
注: 代理店がテクニカルサポートを提供している場合は、インテルではなく代理店にお問い合わせください。
インテル C++ コンパイラーのユーザーフォーラム、FAQ、ヒント、およびその他のサポート情報は、http://support.intel.com/support/performancetools/c/windows/ (英語) を参照してください。サポート情報全般については、http://www.intel.com/software/products/support/ (英語) を参照してください。
注: 特定の国へのアクセスを制限する必要があるソースコードを送信する場合は、ソースコードを送信する前にサポート担当者までお問い合わせください。
EM64T-based
(EM64T ベース) または Itanium(R)-based
(Itanium® ベース) に変更してください) を選択して、コマンドウィンドウを開きます。次のコマンドを入力します。 >> icl
w_cc_p_9.1.xxx)
をインテル・プレミアサポートの適切なフィールドにコピーします。また、問題の解決に役立つと思われる事項はすべてお伝えください。
<package ID>_README
(例: w_cc_p_9.1.xxx_README
) を参照してください。Compiler Error Source Reducer (CESR) は、C/C++ または Fortran ソースコードで構成されたテストケースの収集、縮小、特定、保護、文書化、およびバンドルを行うユーティリティーのセットです。大規模なアプリケーションからインテル・プレミアサポートに送信する小さなテストケースを抽出する場合に便利です。CESR は、インテル・プレミアサポートの [File Downloads] セクションからダウンロードできます。CESR でファイルを検索してください。CESR は試験的に提供されているもので、サポートは提供されておりません。CESR に関するご意見およびご感想は、インテル・プレミアサポートまでお寄せください。CESR を利用するには、Python 2.2 またはそれ以降をあらかじめインストールしておく必要があります。
インテル・コンパイラーのドキュメントおよび HTML ベースの関連ドキュメントは、ナビゲーション、キーワード検索、およびハイパーテキスト機能が利用できるコンパイル済み HTML ヘルプ (.CHM) 形式のファイルです。ブラウザーで .CHM ファイルを開けない場合、Windows エクスプローラーを使用して、Docs
ディレクトリーでファイル名をダブルクリックしてください。
各ドキュメントに簡単にアクセスできるように、ドキュメント・インデックスが提供されています。ドキュメント・インデックスは、<install-dir>Compiler\C++\9.1\Docs\Doc_Index.htm
で、インテル® C++ コンパイラーのプログラム・フォルダーにあります。このリリースでは、Doc_Index.htm
ファイルで説明されているようにオンラインヘルプの構成が変更され、インストール・ガイドと入門ガイドが別になりました。『Intel® Debugger Manual』(英語) は、インテル・デバッガーのプログラム・フォルダーにあります。
インテル・ソフトウェア開発製品の詳しい情報については、http://www.intel.co.jp/jp/developer/software/products/ を参照してください。
関連製品の一部を次にリストします。
本資料に掲載されている情報は、インテル製品の概要説明を目的としたものです。本資料は、明示されているか否かにかかわらず、また禁反言によるとよらずにかかわらず、いかなる知的財産権のライセンスを許諾するためのものではありません。製品に付属の売買契約書『Intel's Terms and Conditions of Sales』に規定されている場合を除き、インテルはいかなる責を負うものではなく、またインテル製品の販売や使用に関する明示または黙示の保証 (特定目的への適合性、商品性に関する保証、第三者の特許権、著作権、その他、知的所有権を侵害していないことへの保証を含む) に関しても一切責任を負わないものとします。インテル製品は、医療、救命、延命措置、重要な制御または安全システム、核施設などの目的に使用することを前提としたものではありません。
インテル製品は、予告なく仕様が変更される場合があります。
機能や命令の中に「予約済み」または「未定義」と記されているものがありますが、その機能が存在しない状態や何らかの特性を設計の前提にしてはなりません。これらの項目は、インテルが将来のために予約しているものです。インテルが将来これらの項目を定義したことにより、衝突が生じたり互換性が失われたりしても、インテルは一切責任を負わないものとします。
本資料で説明されているソフトウェアには、不具合が含まれている可能性があり、公開されている仕様とは異なる動作をする場合があります。現在までに判明している不具合の情報については、インテルのサポートサイトをご覧ください。
本資料およびこれに記載されているソフトウェアはライセンス契約に基づいて提供されるものであり、その使用および複製はライセンス契約で定められた条件下でのみ許可されます。本資料で提供される情報は、情報供与のみを目的としたものであり、予告なく変更されることがあります。また、本資料で提供される情報は、インテルによる確約と解釈されるべきものではありません。インテルは本資料の内容およびこれに関連して提供されるソフトウェアにエラー、誤り、不正確な点が含まれていたとしても一切責任を負わないものとします。ライセンス契約で許可されている場合を除き、インテルからの文書による承諾なく、本資料のいかなる部分も複製したり、検索システムに保持したり、他の形式や媒体によって転送したりすることは禁じられています。
Intel、インテル、Intel ロゴ、Intel Core、Itanium、MMX、Pentium、Xeon、VTune は、アメリカ合衆国およびその他の国における Intel Corporation またはその子会社の商標または登録商標です。
* その他の社名、製品名などは、一般に各社の商標および登録商標です。
(C) 2006 Intel Corporation.