インテル® C++ コンパイラー 10.1 Windows* 版
リリースノート

目次

概要

インテル® C++ コンパイラー 10.1 Windows 版は、IA-32、インテル® 64、および IA-64 アーキテクチャー・ベースのプロセッサー上できわめて高速に動作する C/C++ アプリケーションを生成します。インテル® Pentium® 4 プロセッサー・ファミリーとインテル® Pentium® M プロセッサー・ファミリーのインテル® ストリーミング SIMD 拡張命令 2 (SSE2)、インテル® Pentium® 4 プロセッサー・ファミリーとインテル® Core™ プロセッサー・ファミリーのインテル® ストリーミング SIMD 拡張命令 3 (SSE3) 対応の最適化を行います。プロシージャー間の最適化 (IPO) やプロファイルに基づく最適化 (PGO) によってアプリケーションのパフォーマンスを大きく向上させます。また、OpenMP* に対応し、自動並列化機能も備えるなど、マルチスレッド・コードの開発もサポートしています。

この製品には、インテル® C++ コンパイラー、インテル® デバッガー、Microsoft* ビジュアル開発環境への統合ユーティリティー、およびコード・カバレッジ・ツールとテスト・プライオリタイゼーション・ツールが含まれています。

アーキテクチャー用語

インテル® コンパイラーは、一般的なプロセッサー・アーキテクチャーとオペレーティング・システムを組み合わせた、3 つのプラットフォームをサポートしています。このセクションでは、本ドキュメント、インストール手順、およびサポートサイトでプラットフォームの記述に使用されている用語について説明します。

IA-32
32 ビットのオペレーティング・システムを実行している、インテル® Pentium® II プロセッサーと互換性のある 32 ビット・プロセッサー (インテル® Pentium® 4 プロセッサー、インテル® Xeon® プロセッサーなど)、または同じ命令セットをサポートしている他社製のプロセッサーがベースのシステム。
インテル® 64
64 ビット・アーキテクチャーに対応するように拡張され、Microsoft Windows XP Professional x64 Edition または Microsoft Windows Vista* x64 Edition のような 64 ビット・オペレーティング・システムを実行している IA-32 プロセッサー (インテル® Core™2 プロセッサー・ファミリーなど) がベースのシステム。32 ビットの Windows オペレーティング・システムを実行しているシステムは、IA-32 とみなされます。64 ビット・オペレーティング・システムを実行している、AMD* Athlon64* プロセッサーおよび Opteron* プロセッサーがベースのシステムも、インテル® 64 対応アプリケーション開発用インテル® コンパイラーでサポートされています。
IA-64
64 ビット・オペレーティング・システムを実行している、インテル® Itanium® 2 プロセッサー・ベースのシステム。

製品の内容

この製品には 2 つのエディションがあります。

スタンダード・エディションには、以下のコンポーネントが含まれます。

プロフェッショナル・エディションには、スタンダード・エディションのすべてのコンポーネントに加えて、以下のコンポーネントが含まれます。

プロフェッショナル・エディションの追加コンポーネントは、個別にインストールされ、それぞれリリースノートが含まれています。

注: このドキュメントで <install-dir> として表記されているデフォルトのインストール・ディレクトリーは、%ProgramFiles%\Intel です。インテル® C++ コンパイラー 10.1 は、Compiler\C++\10.1.xxx サブフォルダーにインストールされます。

テクニカルサポートを受けたり、製品のアップデート・モジュールを入手するには、製品を登録する必要があります。製品の登録方法は、この後にある「テクニカルサポート」セクションを参照してください。

バージョン 10.0 および 10.1 の新機能

このセクションでは、インテル® C++ コンパイラー 10.0 以降の新機能および変更点について説明します。インテル® デバッガーのリリースノートも参照してください。

変更および追加されたコマンドライン・オプション

以下に、バージョン 10.0 の最初のリリースから変更または追加されたコマンドライン・オプションをリストします。これらのオプションの詳細な情報は、コンパイラーのドキュメントを参照してください。

/fast
パフォーマンスを向上させるオプションのセットを有効にします。本リリースでは、オプションが変更されています。下記の説明を参照してください。
/help [category]
利用可能なすべてのコンパイラー・オプションまたはコンパイラー・オプションのカテゴリーを表示します。(デフォルト: オフ)
/Qalias-const[-]
入力/出力バッファー規則を、ポインター型の引数を持つ関数に適用するかどうかを指定します。(デフォルト: オフ)
/QaxS
IA-32 汎用コードと将来のインテル® プロセッサーでサポートされる、SSE4 ベクトル化コンパイラー命令およびメディア・アクセラレーター命令を生成します。(IA-32 およびインテル® 64 システムのみ。デフォルト: オフ)
/Qdiag-<type>:<diag-list>
診断情報の表示を制御します。(デフォルト: オフ)
/Qdiag-dump
有効なすべての診断メッセージを出力して、コンパイルを停止するようコンパイラーに指示します。(デフォルト: オフ)
/Qdiag-enable:sv[1|2|3]
スタティックの検証を有効にします。(デフォルト: オフ)
/Qdiag-enable:sv-include
スタティックの検証でインクルード・ファイルも解析対象とします。
/Qdiag-file[:file]
診断解析の結果をファイルに出力します。(デフォルト: オフ)
/Qdiag-file-append[:file]
診断解析の結果をファイルに追加します。(デフォルト: オフ)
/Qdiag-id-numbers[-]
メッセージ ID を使用して、診断メッセージを表示するようコンパイラーに指示します。(デフォルト: オン)
/Qeffc++
特定の C++ プログラミング・ガイドラインに基づく警告を有効にします。(デフォルト: オフ)
/Qfnalign[:n]
最適なバイト境界に関数をアラインするようコンパイラーに指示します。(IA-32 およびインテル® 64 システムのみ。デフォルト: オフ)
/Qfp-speculation=<mode>
浮動小数点演算のスペキュレーションを行うモードをコンパイラーに指示します。(デフォルト: fast)
/Qinline-calloc[-]
malloc() および memset() への呼び出しとして calloc() へのインライン呼び出しを行うようコンパイラーに指示します。(デフォルト: オフ)
/Qinline-dllimport[-]
dllimport 関数をインライン展開するかどうかを指定します。(デフォルト: オン)
/Qinstrument-functions[-]
関数のエントリーポイントと終了ポイントをインストルメントするかどうかを指定します。(デフォルト: オフ)
/Qipo-jobs:n
プロシージャー間の最適化 (IPO) のリンクフェーズで、同時に実行するコマンド (ジョブ) の数を指定します。
/Qkeep-static-consts[-]
ソースで参照されない変数の割り当てを保持するようコンパイラーに指示します。(デフォルト: オフ)
/Qopenmp-lib:type
リンクに使用する OpenMP ランタイム・ライブラリーを指定します。(デフォルト: legacy)
/Qopt-class-analysis[-]
C++ クラス階層情報を使用して、コンパイル時に C++ 仮想関数の呼び出しを解析し解決するようコンパイラーに指示します。(デフォルト: オフ)
/Qopt-multi-version-aggressive[-]
ポインターのエイリアスとスカラー置換の確認に強力なマルチバージョンを使用するようコンパイラーに指示します。(IA-32 およびインテル® 64 システムのみ。デフォルト: オフ)
/Qopt-ra-region-strategy[:keyword]
レジスター・アロケーターが各ルーチンを領域へ分割するために使用する方法を選択します。(IA-32 およびインテル® 64 対応システムのみ。デフォルト: default)
/Qpar-adjust-stack:n
ファイバーベースのメインスレッド用にスタックサイズを調整するコードを生成するようコンパイラーに指示します。(IA-32 およびインテル® 64 対応システムのみ。デフォルト: 0)
/Qpar-runtime-control[-]
シンボリック・ループ境界のあるループのランタイムチェックを実行するコードを生成します。(デフォルト: オフ)
/Qpar-schedule-<keyword>[[:]n]
DO ループのスケジューリング・アルゴリズムを指定します。
/Qprefetch[-]
プリフェッチ挿入による最適化を有効または無効にします。IA-32 システムで使用する場合は、/QxT を指定する必要があります。(IA-32 および IA-64 システムのみ。デフォルト: オフ)
/Qsave-temps[-]
コンパイル時に作成される中間ファイルを保存するようコンパイラーに指示します。(デフォルト: オン)
/Qtcheck[:<mode>]
OpenMP マルチスレッド・アプリケーションの解析方法を指定します。(デフォルト: オフ)
/Qtcollect
インテル® トレースコレクター API の呼び出しを検証するインストルメンテーションを挿入します。(デフォルト: オフ)
/Qunroll-aggressive[-]
小さな一定のトリップカウントのループに完全なアンロールを使用するようコンパイラーに指示します。(IA-32 およびインテル® 64 システムのみ。デフォルト: オフ)
/Qvec-guard-write[-]
ベクトル化されたループで条件チェックを実行するようコンパイラーに指示します。(IA-32 およびインテル® 64 システムのみ。デフォルト: オフ)
/QxO
SSE3、SSE2、および SSE 命令を生成し、インテル® Pentium® 4 プロセッサーおよび SSE3 対応のインテル® Xeon® プロセッサー向けに最適化します。生成されるコードは、一部の AMD プロセッサーのように、SSE3、SSE2、および SSE 命令セットに対応したインテル以外から提供されているプロセッサーでも動作することがあります。この値は、processor 値が S、T、および P の場合に有効となる一部の最適化を有効にしません。(IA-32 およびインテル® 64 システムのみ。デフォルト: オフ)
/QxS
将来のインテル® プロセッサーでサポートされる、SSE4 ベクトル化コンパイラー命令およびメディア・アクセラレーター命令を生成します。また、SSSE3、SSE3、SSE2、および SSE 命令も生成します。将来のインテル® プロセッサー向けに最適化します。(IA-32 およびインテル® 64 システムのみ。デフォルト: オフ)

推奨されていない (古い) コマンドライン・オプションおよび削除されたコマンドライン・オプション

推奨されていない (現在はサポートされているが、将来のバージョンでは削除される予定の) コマンドライン・オプション、または削除された (サポートが終了した) コマンドライン・オプションの詳細は、ドキュメントの「コンパイラー・オプション」 > 「推奨されていないコンパイラー・オプション (古いオプション) と削除されたコンパイラー・オプション」を参照してください。

代替コマンドライン・オプション

多くのコマンドライン・オプションでは、オプション名でハイフン ("-") の代わりに、古い記述方法の下線 ("_") を使用しています。この古い記述方法は、まだ有効です。

/fast の変更

/fast オプションは、一般的にランタイム・パフォーマンスを向上させるオプションのセットを指定するための簡単な方法です。ドキュメントに記載されているように、オプションのセットは変更されることがあります。/fast は、バージョン 10.1 では /QxT を設定しますが、以前のバージョンでは /QxP を設定します。この変更により不都合が生じる場合は、/fast を使用する代わりに、各オプションを個別に設定する必要があります。詳細は、ドキュメントの「コンパイラー・オプション」を参照してください。

インテル® 64 対応システムで、デフォルトで有効になる /QxW オプション

インテル® 64 対応システムでは、/QxW はデフォルトで有効になります。これは、ベクトル化を有効にする効果があります。また、以前のバージョンを使用したときには表示されていなかった場所で、ベクトル化レポートメッセージが表示されます。ベクトル化レポートメッセージを表示しないようにするには、/Qdiag-disable:vec を使用してください。/QxP/QaxT のような代替オプションも指定できます。

Microsoft Visual Studio* .NET 2002 サポートの終了

Microsoft Visual Studio .NET 2002 のコマンドラインおよびビジュアル開発環境への統合は提供していません。サポートしている Visual Studio バージョンは 2003 および 2005 です。

複数のコンパイラー・バージョンのインストール

複数のバージョンのインテル® C++ コンパイラーをインストールすることができます。バージョン 10.1 では、複数のアップデート・バージョンを共存させることができます。バージョン 10.1 のアップデートをインストールする場合、10.1 の古いバージョンは自動的にアンインストールされません。Microsoft Visual Studio 2003 または Microsoft Visual Studio 2005 では、Microsoft Visual Studio から ([ツール] - [オプション] - [Intel® C++ (インテル® C++)] - [Compiler (コンパイラー)] を選択して) 新しいバージョンを選択する必要があります。以前のバージョンをアンインストールする場合は、このバージョンをインストールする前 (推奨) でもインストールした後でもアンインストールできます。アップデートごとに、インストール・パスは異なります。

Microsoft OpenMP ライブラリーのサポート

バージョン 10.1 から /Qopenmp-lib:compat オプションにより、OpenMP ライブラリー互換の Microsoft Visual C++ を使用するように指定できるようになりました。アプリケーションに Microsoft Visual C++ で構築されたソースモジュールが含まれており、アプリケーションで OpenMP を使用する場合、このオプションを指定することを推奨します。デフォルトは、/Qopenmp-lib:legacy で、インテルが提供する OpenMP ライブラリーを使用します。

括弧で囲まれた型を使用する new 演算子の動作変更

C++ の new 演算子では、括弧で囲まれた型の直後に配列インデックスを使用することはできません。次に例を示します。

int main()
{
  char *p1 = new (char *)[20]; // array index is not allowed after ")"
  return 0;
}

10.0 よりも前のバージョンのインテル® C++ コンパイラーでは、配列インデックスは作成する型の一部とみなされ、コンパイラーおよび対象となる互換性バージョンにより、次のいずれかとして処理されました。

new ((char*)[20])

または

(new (char *))[20]

バージョン 10.0 では、このような誤った使用をエラーとみなすように変更されています。

Microsoft Visual Studio 2005 のカスタムビルド規則

インテル® C++ コンパイラーの Microsoft Visual Studio 2005 への統合は、Visual C++* のカスタムビルド規則機能をサポートしています (一部の機能は制限されています)。カスタムビルド規則を使用すると、ビルド処理にカスタムツールの呼び出しを追加できます。カスタムビルド規則に関する詳細は、Visual C++ のドキュメントを参照してください。

カスタムビルド規則は、Visual C++ プロジェクトをインテル・プロジェクトに変換する前に作成する必要があります。インテル・プロジェクトに変換した後にカスタムビルド規則を変更する場合は、Visual C++ プロジェクトに変換してから、カスタムビルド規則を変更して、再度インテル・プロジェクトに変換します。

カスタムビルド規則に対して定義されている文字列のプロパティーを変更する場合、利用可能なマクロのリストにインテル固有のマクロ ($(icInstallDir); $(icIDEInstallDir); $(icProjectExt); $(icProjectFileName) など) は含まれていません。ただし、カスタムビルド規則のプロパティー値でインテル固有のマクロを使用することはできます。指定されたマクロは正しく機能します。

インテル® C++ コンパイラーの Visual Studio 2005 への統合では、現在 Visual C++ のツールのビルド順序機能 (Visual C++ の [ツールのビルド順序] ダイアログボックスから利用可能) をサポートしていません。つまり、ビルドステップの実行順序を変更することはできません。

OpenMP アプリケーション用の KMP_AFFINITY 環境変数

OpenMP アプリケーションでは、KMP_AFFINITY を使用して、システム上のプロセッサーに実行スレッドをバインドする方法を指定することができます。この設定はプログラム実行中、各スレッドを、生成される順序 (ラウンドロビン方式 (総当り)) に基づき、システム上のプロセッサー・コアにバインドします。KMP_AFFINITY の値は、次の形式になります。

compact,<level>

<level> は正の整数です。次に例を示します。

compact,1

<level> 引数は、バイナリーツリーで表されるマシンのトポロジーマップで、バインドされる連続スレッドのコア間のギャップを指定します。レベル 0 は、インテル® ハイパースレッディング・テクノロジー (HT テクノロジー) 対応のプロセッサー、または連続するプロセッサーの連続するスレッド・コンテキストにスレッドがバインドされることを示します。スレッド・コンテキストからコア、そしてパッケージ (プロセッサー) の順に、レベルが 1 つずつ上がります。この設定は、インテル® プロセッサーが搭載され、スレッド・バインディングに対応したオペレーティング・システムでのみサポートされています。

改善されたパラレライザーおよびベクトライザー

このバージョンでは、メモリーおよびループの最適化を行う最適化レベル O2O3 で、並列化 (すべてのシステム) とベクトル化 (IA-32 およびインテル® 64 対応システム) を統合するように最適化機構が完全に再設計されています。

次の改善により、パフォーマンスの大幅な向上が期待できます。

新しく強化された高度なループ変換の最適化レポート

ループ変換 (HLO) の最適化レポートは、ループ変換 (交換) を適用できなかった原因を示し、検出されたボトルネックが、ソースの変更により排除できる場合はループ変換を推奨します。   これらのレポートは、より詳細な情報を提供し、理解しやすいように強化されています。

Visual Studio との統合の改良

バージョン 10.1 では、コンパイラーの Microsoft Visual Studio 2003 および 2005 への統合で以下の変更が行われました。

スタティックの検証

スタティックの検証は、複数のソースファイルに渡ってプログラムを静的に解析する新しい機能です。ユーザーコード内のさまざまな不具合や言語機能と矛盾している箇所を特定して、重要度に応じて報告します。スタティックの検証は、C/C++ および Fortran のコードを理解し、OpenMP 宣言子の解析も行います。
 
本リリースでは、スタティックの検証を有効にすると、リンカーが起動されず、実行ファイル、スタティック・リンク・ライブラリー、またはダイナミック・リンク・ライブラリーが生成されません。スタティックの検証により生成されるオブジェクト・ファイルは有効なものではなく、実際の実行ファイル、スタティック・リンク・ライブラリー、またはダイナミック・リンク・ライブラリーの生成には使用できません。現在の使用モデルでは、スタティックの検証は診断レポートを生成するための代替ビルドオプションとして追加されています。

スタティックの検証は、クロスファイルのプロシージャー間の最適化 (/Qipo) とともに使用することはできません。

詳細は、ドキュメントの「アプリケーションのビルド」 > 「エラー処理」 > 「コンパイル時エラー処理」 > 「スタティックの検証診断オプションの使用」を参照してください。

Microsoft Visual Studio 環境でのスタティックの検証の使用

IDE 内でスタティックの検証サポートを有効にすると、最終的なビルドターゲット (例: 実行ファイル) は作成されません。スタティックの検証が必要な場合は、デバッグ (開発) 構成のコピーを作成して、スタティックの検証構成を別途作成することを推奨します。

将来のバージョンにおけるインテル® デバッガー (IDB) 提供の終了

インテル® C++ コンパイラー Windows 版の将来のメジャーリリースでは、インテル® デバッガー (IDB) は提供されなくなります。Microsoft Visual Studio でのデバッグには影響ありません。IDB の代わりに Microsoft Visual Studio のデバッグ機能を使用してください。

インストール

詳細は、『インストール・ガイド』を参照してください。

動作環境

アーキテクチャー用語

インテル® コンパイラーは、一般的なプロセッサー・アーキテクチャーとオペレーティング・システムを組み合わせた、3 つのプラットフォームをサポートしています。このセクションでは、本ドキュメント、インストール手順、およびサポートサイトでプラットフォームの記述に使用されている用語について説明します。

IA-32
32 ビットのオペレーティング・システムを実行している、インテル® Pentium® II プロセッサーと互換性のある 32 ビット・プロセッサー (インテル® Pentium® 4 プロセッサー、インテル® Xeon® プロセッサーなど)、または同じ命令セットをサポートしている他社製のプロセッサーがベースのシステム。
インテル® 64
64 ビット・アーキテクチャーに対応するように拡張され、Microsoft Windows XP Professional x64 Edition または Microsoft Windows Vista* x64 Edition のような 64 ビット・オペレーティング・システムを実行している IA-32 プロセッサー (インテル® Core™2 プロセッサー・ファミリーなど) がベースのシステム。32 ビットの Windows オペレーティング・システムを実行しているシステムは、IA-32 とみなされます。64 ビット・オペレーティング・システムを実行している、AMD Athlon64 プロセッサーおよび Opteron プロセッサーがベースのシステムも、インテル® 64 対応アプリケーション開発用インテル® コンパイラーでサポートされています。
IA-64
64 ビット・オペレーティング・システムを実行している、インテル® Itanium® 2 プロセッサー・ベースのシステム。

ネイティブおよびクロスプラットフォーム開発

「ネイティブ」とは、アプリケーションを実行するプラットフォームと同じプラットフォームでアプリケーションをビルドする (例えば、IA-32 システムで実行するアプリケーションを IA-32 システムでビルドする) ことを指します。「クロスプラットフォーム」または「クロスコンパイル」とは、アプリケーションを実行するプラットフォームとは異なる種類のプラットフォームでアプリケーションをビルドする (例えば、インテル® 64 対応システムで実行するアプリケーションを IA-32 システムでビルドする) ことを指します。すべての組み合わせのクロスプラットフォーム開発がサポートされているわけではありません。また、組み合わせによっては、オプションのツールとライブラリーをインストールする必要があります。

サポートされているホスト (アプリケーションをビルドするシステム) とターゲット (アプリケーションを実行するシステム) の組み合わせを次に示します。

ホストとターゲットの組み合わせ
ホスト\ターゲット IA-32 インテル® 64 IA-64
IA-32
インテル® 64
IA-64
×
×

注: 上の表は、コマンドライン・ビルド環境の組み合わせを示しています。組み合わせによっては、一部の Microsoft ビジュアル開発環境では利用できません。

アプリケーション開発に必要な最小ハードウェア構成

IA-32 対応アプリケーション開発に必要なソフトウェア環境

インテル® 64 対応システムまたは AMD Opteron プロセッサー・システム用のアプリケーション開発に必要なソフトウェア環境

IA-64 対応アプリケーション開発に必要なソフトウェア環境

アプリケーション実行に必要な環境

注:

アプリケーションで使用している機械語命令が特定のオペレーティング・システムやプロセッサーでサポートされているかどうかは、アプリケーション開発者自身の責任で確認してください。

Microsoft Windows Vista でのインストール

Windows Vista では、Visual Studio 2005 のみサポートされています。それ以前のバージョンの Visual Studio はサポートされていません。Visual Studio 2005 を使用する場合は、Windows Vista にインテル® コンパイラーをインストールする前に、Visual Studio 2005 Service Pack 1 (VS 2005 SP1) と Visual Studio 2005 Service Pack 1 Update for Windows Vista (VS 2005 SP1 からリンクされています) をインストールしてください。これらのアップデートをインストールした後に、管理者権限で Visual Studio が実行できることを確認してください。実行できない場合、インテル® コンパイラーを使用できません。Visual Studio のアップデートをインストールする前に、インテル® コンパイラーの統合をアンインストールしてください。詳細は、Microsoft の Visual Studio on Windows Vista (英語) および関連ドキュメントを参照してください。

Microsoft Visual C++ 6.0 および Microsoft Visual Studio 98 のサポートの終了

インテル® C++ コンパイラー Windows 版の次のメジャーリリースでは、Microsoft Visual C++ 6.0 および Microsoft Visual Studio 98 はサポートされなくなります。将来のインテル® コンパイラーとの互換性のために、Microsoft Visual Studio 2005 に移行してください。

既知の問題

Visual Studio 2005 で利用できないスタティック、シングルスレッド・ライブラリー

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 フォームを指定してください。次に例を示します。

他に何も指定していない場合、Visual Studio 2005 で icl を使用したときのデフォルトは /MT です。

この問題は、Microsoft Visual Studio IDE からビルドされるプロジェクトにも影響します。この場合、[プロジェクト プロパティ] - [C/C++] - [コード生成] - [ランタイム・ライブラリー] を新しい値に変更してください。

Windows Vista での Visual Studio の使用

Microsoft は、Windows Vista で Visual Studio 2005 のみサポートしています。それ以前のバージョンの Visual Studio はサポートしていません。Windows Vista では、より高い権限で Visual Studio を実行する必要があります。Microsoft では、この要件を明確にするために、Visual Studio 2005 のアップデートを配布する予定です。インテルでは、Visual Studio のセッションを開始する際に、[管理者で実行] オプションを使用することを推奨します。Windows Vista での Visual Studio の使用に関する詳細は、Microsoft の Web サイト (英語) を参照してください。

Visual Studio 2005 のプロパティー・シート

インテル C++ プロジェクトは Visual Studio 2005 のプロパティー・シートとユーザー定義マクロをサポートしています。インテル C++ プロジェクト・システムに変換する前にプロパティー・シートを継承するように C++ プロジェクトを修正することを推奨します。継承しない場合、プロパティー・シートの設定は Visual Studio を再起動するまで認識されません。Visual Studio 2005 のプロパティー・シートとユーザー定義マクロの詳細は、Microsoft のドキュメントを参照してください。

コマンドラインからの Visual Studio プロジェクトのビルド

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

自動 CPU ディスパッチ (/Qax*) 使用時のデバッグ情報の制限

/Qax[code] を使用してコンパイルを行うと、各関数について 汎用コードと CPU 特有のコードの 2 種類のコードが生成されます。各関数のシンボルは自動 CPU ディスパッチ・ルーチンを参照して、ランタイムに実行するコードセクションを決定します。これらの関数にデバッガーのブレークポイントが名前でセットされると、ディスパッチ・ルーチンでアプリケーションが停止します。その結果、デバッグ時に予測できない動作が発生します。この問題は、インテル® デバッガーおよびインテル® コンパイラーの将来のバージョンで修正される予定です。

/Oy- オプションを使用してビルドされた IA-32 プログラムをデバッグまたはトレースバック表示できない

/Oy- を使用してコンパイルを行うと、IA-32 EBP レジスターはフレームポインターではなく汎用レジスターとして使用されます。デバッガーおよびトレースバック・ハンドラーは、この方法でコンパイルされた関数への呼び出しを含むスタックから適切にスタックを戻すことができません。

Platform SDK 使用時の IA-64 システムまたはインテル® 64 対応システムのリンクエラー

IA-64 システムまたはインテル® 64 対応システムで 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 と作業を行っています。この問題を回避するには、以下のいずれかの方法でアプリケーションをリンクしてください。

Win32 API を使用する一般的なユーザーモードのアプリケーションでは、bufferoverflowu.lib を使用してください。Win32 API を使用できないユーザーモード・サブシステムやサービス用のアプリケーションでは、代わりに bufferoverflow.lib を使用してください。カーネルモード・アプリケーションおよびドライバーは、bufferoverflowk.lib にリンクしてください。

IA-64 システムにおける memset/memcpy 使用時のアライメントされていないアクセスエラー

IA-64 システムで動作する Microsoft Windows Server 2003 の一部のバージョンでは、C ライブラリー・ルーチンの memset および memcpy の呼び出しは、アライメントされていないアクセス例外になります。この問題は、引数がアライメント・ベース 2 以上のデータ型へのポインターであるにもかかわらず、実際の引数がアライメントされていない場合に発生します。この問題を回避するには、引数を適切にアライメントしてください。

テクニカルサポート

インストール時にコンパイラーの登録を行わなかった場合は、インテル® ソフトウェア開発製品レジストレーション・センターで登録してください。登録を行うことで、サポートサービス期間 (通常は 1 年間) の間、すべてのアップデートと新しいバージョンの入手を含む、インテル® プレミアサポートのすべての機能にアクセスできます。

テクニカルサポート、製品のアップデート、ユーザーフォーラム、FAQ、ヒント、およびその他のサポート情報は、http://www.intel.com/software/products/support/cwin を参照してください。

注: 代理店がテクニカルサポートを提供している場合は、インテルではなく代理店にお問い合わせください。

問題の送信方法

問題を送信する手順は次のとおりです。

  1. http://www.intel.com/software/products/support にアクセスして、インテル® プレミアサポートのリンクをクリックします。
  2. サイトにログインします。ログイン名とパスワードを入力します。どちらも大文字と小文字が区別されます。
  3. 左側のナビゲーション・バーの [Submit Issue] リンクをクリックします。
  4. [Product Type] ドロップダウン・リストから [Development Environment (tools,SDV,EAP)] を選択します。
  5. ソフトウェアまたはライセンスに関する問題の場合は、[Product Name] ドロップダウン・リストから [Intel® C++ Compiler for Windows*] を選択します。
  6. 質問を入力します。ウィンドウの残りのフィールドも記入して、問題箇所の送信を完了します。

注: 特定の国へのアクセスを制限する必要があるソースコードを送信する場合は、ソースコードを送信する前にサポート担当者までお問い合わせください。

問題の報告および製品に関するご意見を送信される際のガイドライン

  1. 問題、その他ご意見を入力してください。
    問題の報告の場合は、その問題を再現できるように、できるだけ具体的に説明してください。コンパイラーの問題報告の場合は、できるだけコンパイラー・オプションと簡単なテストコードを追加してください。
  2. システム構成情報を入力してください。
    次のようにしてパッケージ ID 情報を取得できます。[スタート] - [すべてのプログラム] - [Intel® Software Development Tools (インテル® ソフトウェア開発ツール)] - [Intel® C++ Compiler 10.1.xxx (インテル® C++ コンパイラー 10.1.xxx)] - [C++ Build Environment for applications running on IA-32 (IA-32 対応アプリケーション用インテル® C++ コンパイラーのビルド環境)] を選択して、コマンドウィンドウを開きます (必要に応じて、IA-32 を インテル® 64 または IA-64 に変更してください)。次のコマンドを入力します。
        >> icl  
    出力された「Package ID」(例: w_cc_x_10.1.xxx) をインテル® プレミアサポートの適切なフィールドにコピーします。また、問題の解決に役立つと思われる事項はすべてお伝えください。
  3. コンパイラーをインストールできない場合、またはパッケージ ID を取得できない場合は、ダウンロードしたファイル名をパッケージ ID として入力してください。

Compiler Error Source Reducer (CESR)

Compiler Error Source Reducer (CESR) は、C/C++ または Fortran ソースコードで構成されたテストケースの収集、縮小、特定、保護、文書化、およびバンドルを行うユーティリティーのセットです。大規模なアプリケーションからインテル® プレミアサポートに送信する小さなテストケースを抽出する場合に便利です。CESR は、インテル® ソフトウェア開発製品レジストレーション・センターの [製品のダウンロード] からダウンロードできます。製品を選択して、バージョンのドロップダウンから [CESR] を選択します。CESR は試験的に提供されているもので、サポートは提供されておりません。CESR に関するご意見およびご感想は、インテル® プレミアサポートまでお寄せください。CESR を利用するには、Python* 2.2 またはそれ以降をあらかじめインストールしておく必要があります。

ドキュメント

インテル® コンパイラーのドキュメントおよび HTML ベースの関連ドキュメントは、ナビゲーション、キーワード検索、およびハイパーテキスト機能が利用できるコンパイル済み HTML ヘルプ (.CHM) 形式のファイルです。ブラウザーで .CHM ファイルを開けない場合、Windows エクスプローラーを使用して、Docs ディレクトリーでファイル名をダブルクリックしてください。

各ドキュメントに簡単にアクセスできるように、ドキュメント・インデックスが提供されています。ドキュメント・インデックスは、<install-dir>Compiler\C++\10.1.xxx\Docs\Doc_Index.htm で、インテル® C++ コンパイラーのプログラムフォルダーにあります。本リリースでは、Doc_Index.htm ファイルで説明されているようにオンラインヘルプの構成が変更され、インストール・ガイドと入門ガイドが別になりました。『Intel® Debugger Manual』(英語) は、インテル® デバッガーのプログラムフォルダーにあります。

追加情報

関連製品とサービス

インテル® ソフトウェア開発製品の詳しい情報については、http://www.intel.co.jp/jp/software/products/ を参照してください。

関連製品の一部を次にリストします。

著作権と商標について

本資料に掲載されている情報は、インテル製品の概要説明を目的としたものです。本資料は、明示されているか否かにかかわらず、また禁反言によるとよらずにかかわらず、いかなる知的財産権のライセンスを許諾するためのものではありません。製品に付属の売買契約書『Intel's Terms and Conditions of Sale』に規定されている場合を除き、インテルはいかなる責を負うものではなく、またインテル製品の販売や使用に関する明示または黙示の保証 (特定目的への適合性、商品性に関する保証、第三者の特許権、著作権、その他、知的所有権を侵害していないことへの保証を含む) にも一切応じないものとします。インテルによる書面での同意がない限り、インテル製品は、インテル製品の停止を起因とする人身傷害または死亡を想定して設計されていません。

インテル製品は、予告なく仕様や説明が変更される場合があります。機能または命令の一覧で「留保」または「未定義」と記されているものがありますが、その「機能が存在しない」あるいは「性質が留保付である」という状態を設計の前提にしないでください。これらの項目は、インテルが将来のために留保しているものです。インテルが将来これらの項目を定義したことにより、衝突が生じたり互換性が失われたりしても、インテルは一切責任を負いません。この情報は予告なく変更されることがあります。この情報だけに基づいて設計を最終的なものとしないでください。

本資料で説明されている製品には、エラッタと呼ばれる設計上の不具合が含まれている可能性があり、公表されている仕様とは異なる動作をする場合があります。現在確認済みのエラッタについては、インテルまでお問い合わせください。

最新の仕様をご希望の場合や製品をご注文の場合は、お近くのインテルの営業所または販売代理店にお問い合わせください。

本書で紹介されている注文番号付きのドキュメントや、インテルのその他の資料を入手するには、1-800-548-4725 (アメリカ合衆国) までご連絡いただくか、インテルの Web サイトを参照してください。

Intel、インテル、Intel ロゴ、Intel Core、Itanium、Pentium、VTune、Xeon は、アメリカ合衆国およびその他の国における Intel Corporation の商標です。

* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

© 2007 Intel Corporation. 無断での引用、転載を禁じます。