C/C++ プロパティ ページ
以下のプロパティ ページは、[プロジェクト]>[プロパティ]>[構成プロパティ]>[C/C++] の下にあります。
C/C++ 全般プロパティ
追加のインクルード ディレクトリ
インクルード パスに追加する 1 つ以上のディレクトリを指定します。 複数のディレクトリがある場合は、セミコロン (';
') で区切ります。 /I
(追加のインクルード ディレクトリ) コンパイラ オプションを設定します。
追加の #using ディレクトリ
#using
ディレクティブに渡された名前を解決するために、検索するディレクトリを 1 つ以上指定します。 複数のディレクトリがある場合は、セミコロン (';
') で区切ります。 /AI
コンパイラ オプションを設定します。
追加の BMI ディレクトリ
import
ディレクティブに渡された名前を解決するために、検索するディレクトリを 1 つ以上指定します。 複数のディレクトリがある場合は、セミコロン (';
') で区切ります。 /ifcSearchDir[path]
コンパイラ オプションを設定します。
追加のモジュールの依存関係
import
ディレクティブに渡された名前を解決するために、使用するモジュールを 1 つ以上指定します。 複数のディレクトリがある場合は、セミコロン (';
') で区切ります。 /reference
コンパイラ オプションを設定します。
追加のヘッダー ユニットの依存関係
import
ディレクティブに渡された名前を解決するために、使用するヘッダー ユニットを 1 つ以上指定します。 複数のディレクトリがある場合は、セミコロン (';
') で区切ります。 /headerUnit
コンパイラ オプションを設定します。
モジュールの依存関係のソースをスキャンする
[はい] に設定すると、モジュール インターフェイスとヘッダー ユニットのソースだけではなく、すべての C++ ソースに、モジュールやヘッダー ユニットの依存関係がないか、コンパイラによってスキャンされます。 ビルド システムによって、完全な依存関係グラフが作成されます。これにより、インポートされたすべてのモジュールとヘッダー ユニットが、それらに依存するファイルをコンパイルする前に、確実にビルドされます。 [インクルードをインポートに変換する] と組み合わせると、同じディレクトリ内にある header-units.json
ファイルでヘッダー ファイルとして指定されているヘッダー ファイルはすべて、ヘッダー ユニットにコンパイルされます。
拡張子.ixx
を持つファイル、およびファイル プロパティ>C/C++>Compile As プロパティが C++ ヘッダー ユニット (/exportHeader) としてコンパイルに設定されているファイルは、常にスキャンされます。
インクルードをインポートに変換する
[はい] に設定すると、特定の条件が満たされた場合に、コンパイラによって、#include
ディレクティブが import
ディレクティブとして扱われます。ヘッダー ファイルは、同じディレクトリ内にある header-units.json
ファイルに指定され、コンパイルされたヘッダー ユニット (.ifc
ファイル) は、そのヘッダー ファイルで使用できます。 それ以外の場合、ヘッダー ファイルは通常の #include
として扱われます。 header-units.json
ファイルは、シンボルの重複なしに、各 #include
のヘッダー ユニットをビルドするために使用されます。 [モジュール依存関係のソースをスキャンする] と組み合わせると、ヘッダー ユニットにコンパイルされたすべてのヘッダー ファイルが、コンパイラによって自動的に検索されます。 このプロパティによって、/translateInclude
コンパイラ オプションが設定されます。
デバッグ情報の形式
コンパイラによって生成されるデバッグ情報の種類を指定します。 このプロパティには、互換性のあるリンカー設定が必要です。 /Z7
、/Zi
、/ZI
(デバッグ情報の形式) コンパイラ オプションを設定します。
選択肢(複数)
- なし - デバッグ情報が生成されないため、コンパイルが高速になる可能性があります。
- [C7 互換] - プログラムに対して生成するデバッグ情報の種類を選択し、その情報をオブジェクト (.obj) ファイルに保存するのかプログラム データベース (PDB) に保存するのかを選択します。
- [プログラム データベース] - デバッガーで使う型情報とシンボリック デバッグ情報を含む、プログラム データベース (PDB) が生成されます。 シンボリック デバッグ情報には、変数や関数の名前と型、および行番号が含まれます。
- エディット コンティニュ用プログラム データベース - 前述のように、エディット コンティニュ機能をサポートする形式でプログラム データベースを生成します。
マイ コードのみデバッグのサポート
このコンパイル単位でマイ コードのみデバッグを有効にするためのサポート コードを追加します。 /JMC
を設定します。
共通言語ランタイム サポート
.NET ランタイム サービスを使用します。 このスイッチは、一部の他のスイッチと互換性がありません。詳細については、スイッチの /clr
ファミリに関するドキュメントを参照してください。
選択肢(複数)
- [共通言語ランタイム サポートを使用しない] - 共通言語ランタイム サポートを使用しません
- [共通言語ランタイム サポート] - アプリケーションのメタデータを作成して、他の CLR アプリケーションで使用できるようにします。 また、アプリケーションで、他の CLR コンポーネントのメタデータ内の型とデータを使用できるようにします。
- [純粋 MSIL 共通言語ランタイム サポート] - ネイティブの実行可能コードを含まない、MSIL のみの出力ファイルを作成します。ただし、MSIL にコンパイルされたネイティブ型を含めることはできます。
- [安全な MSIL 共通言語ランタイム サポート] - MSIL のみの (ネイティブの実行可能コードを含まない)、検証可能な出力ファイルを作成します。
拡張機能Windows ランタイム使用する
Windows ランタイム言語拡張機能を使用します。 /ZW
を設定します。
著作権情報の非表示
コンパイラの開始時のサインオン バナーの表示と、コンパイル時の情報メッセージの表示を抑制します。
警告レベル
コード エラーに対するコンパイラの警告レベルを指定します。 /W0
- /W4
を設定します。
選択肢(複数)
- [すべての警告を非表示にする] - レベル 0 では、すべての警告を無効にします。
- [レベル 1] - レベル 1 では、重大な警告を表示します。 レベル 1 は、コマンド ラインの既定の警告レベルです。
- [レベル 2] - レベル 2 では、レベル 1 のすべての警告と、レベル 1 より重大度の低い警告を表示します。
- [レベル 3] - レベル 3 では、レベル 2 のすべての警告と、運用環境向けに推奨されるその他すべての警告を表示します。
- [レベル 4] - レベル 4 では、レベル 3 のすべての警告と、ほとんどの場合無視しても問題のない情報レベルの警告を表示します。
- [警告をすべて有効にする] - 既定で無効にされている警告を含む、すべての警告を有効にします。
警告をエラーとして扱う
コンパイラの警告をエラーとして扱います。 新しいプロジェクトの場合、すべてのコンパイルで /WX
を使用することをお勧めします。 すべての警告を解決することで、見つけにくいコードの欠陥を最小限に抑えます。
警告バージョン
特定のバージョンのコンパイラ以降で導入された警告を非表示にします。 /Wv:xx[.yy[.zzzzz]]
を設定します。
診断形式
診断メッセージに列情報やソース コンテキストを表示する、多様な診断を有効にします。
選択肢(複数)
- [キャレット] - 診断メッセージで列情報を表示します。 また、問題のある列を示すキャレットを使って、ソース コードの関連する行を出力します。
- [列情報] - 可能な場合は、診断が発行された行内の列番号も表示します。
- [クラシック] - 行番号を含む、以前の簡潔な診断メッセージのみを出力します。
SDL チェック
追加のセキュリティ開発ライフサイクル (SDL) 推奨チェックには、追加の安全なコード生成機能の有効化が含まれており、追加のセキュリティ関連の警告がエラーとして有効になります。 /sdl
、/sdl-
を設定します。
複数プロセッサによるコンパイル
複数プロセッサによるコンパイルを有効にします。 /MP
コンパイラ オプションを設定します。
アドレス サニタイザーを有効にする
AddressSanitizer インストルメンテーションを含むプログラムをコンパイルし、リンクします。 このプロパティは現在、x86 および x64 のターゲット ビルドをサポートしています。 /fsanitize
コンパイラ オプションを設定します。
C/C++ 最適化プロパティ
Optimization
コード最適化のオプションを選択します。特定の最適化オプションを使用するには、[カスタム] を選択します。 /Od
、/O1
、/O2
を設定します。
選択肢(複数)
- カスタム - カスタムの最適化。
- 無効 - 最適化を無効にします。
- [最大最適化 (サイズを優先)] -
/Os /Oy /Ob2 /Gs /GF /Gy
と同じです - [最大最適化 (速度を優先)] -
/Oi /Ot /Oy /Ob2 /Gs /GF /Gy
と同じです - [最適化 (速度を優先)] -
/Oi /Ot /Oy /Ob2
と同じです
インライン関数の展開
ビルドのインライン関数の拡張レベルを選択します。 /Ob
を設定します。
選択肢(複数)
- 既定値
- [無効] - インライン展開を無効にします。これは既定でオンになっています。
- [__inline のみ] -
inline
、__forceinline
、または__inline
としてマークされた関数のみを展開します。 または、C++ メンバー関数で、クラス宣言内で定義されている関数です。 - [拡張可能な関数すべて] -
inline
または__inline
としてマークされた関数と、コンパイラが選択するその他すべての関数を展開します。 (拡張は、多くの場合、自動インライン化と呼ばれるコンパイラの判断で行われます)。
組み込み関数を有効にする
組み込み関数を有効にします。 組み込み関数を使うと生成されるコードは高速になりますが、サイズが大きくなる可能性があります。 /Oi
を設定します。
サイズまたは速度を優先する
コードのサイズとコードの速度のどちらを優先するかにかかわらず、'グローバルな最適化' を有効にする必要があります。 /Ot
、/Os
を設定します。
選択肢(複数)
- [実行可能ファイルのサイズを優先] - 速度よりもサイズを優先するようにコンパイラに指示することで、EXE と DLL のサイズを最小限に抑えます。
- [実行速度を優先] - サイズよりも速度を優先するようにコンパイラに指示することで、EXE と DLL の速度を最大化します。 (この値が既定値です。)
- [なし] - サイズと速度の最適化を実行しません。
フレーム ポインターを省略する
呼び出し履歴にフレーム ポインターが作成されなくなります。
ファイバー保護の最適化を有効にする
ファイバーとスレッド ローカル ストレージ アクセスを使用するときに、メモリ領域の最適化を有効にします。 /GT
を設定します。
プログラム全体の最適化
コード生成をリンク時まで遅延させることで、モジュール間の最適化を有効にします。 リンカー オプション [リンク時のコード生成] が必要になります。 /GL
を設定します。
C/C++ プリプロセッサ プロパティ
プリプロセッサの定義
ソース ファイルの前処理シンボルを定義します。
指定したプリプロセッサ定義の無効化
1 つ以上のプリプロセッサ定義の無効化を指定します。 /U
を設定します。
すべてのプリプロセッサ定義の無効化
すべてのプリプロセッサの定義済み定義を無効にします。 /u
を設定します。
標準インクルード パスの無視
INCLUDE 環境変数で指定されたディレクトリのインクルード ファイルをコンパイラが検索しないようにします。
ファイルの前処理
C および C++ ソース ファイルが前処理され、前処理済みの出力がファイルに書き込まれます。 このオプションを指定すると、コンパイルが抑制され、.obj
ファイルが生成されません。
行番号の抑制の前処理
#line ディレクティブなしで前処理します。
コメントを残す
ソース コードからのコメントの削除を抑制します。少なくとも 1 つの [前処理] オプションを設定する必要があります。 /C
を設定します。
C/C++ コード生成プロパティ
文字列プールを有効にする
コンパイラは、プログラム イメージに、同一文字列の 1 つの読み取り専用コピーのみを作成します。 これによりプログラムのサイズが小さくなります。これは "文字列プール" と呼ばれる最適化です。 /O1
、/O2
、/ZI
では、/GF
オプションが自動的に設定されます。
最小限のリビルドを有効にする
最小リビルドを有効にします。これにより、ヘッダー (.h
) ファイルに格納されている、変更された C++ クラス定義を含む C++ ソース ファイルを再コンパイルするかどうかが決定されます。
C++ の例外を有効にする
コンパイラで使用する例外処理のモデルを指定します。
選択肢(複数)
- [はい - SEH の例外あり] - 非同期 (構造化) 例外と同期 (C++) 例外をキャッチする例外処理モデル。
/EHa
を設定します。 - [はい] - C++ 例外のみをキャッチし、extern C 関数が C++ 例外をスローすることはないと想定するようにコンパイラに指示する例外処理モデル。
/EHsc
を設定します。 - [はい - Extern C 関数あり] - C++ 例外のみをキャッチし、extern C 関数が例外をスローすると想定するようにコンパイラに指示する例外処理モデル。
/EHs
を設定します。 - [いいえ] - 例外処理なし。
小さい型のチェック
小さい型への変換のチェックを有効にします。デバッグ以外の最適化の種類と互換性がありません。 /RTCc
を設定します。
基本ランタイムのチェック
基本ランタイムのエラー チェックを有効にします。デバッグ以外の最適化の種類と互換性がありません。 /RTCs
、/RTCu
、/RTC1
を設定します。
選択肢(複数)
- [スタック フレーム] - スタック フレームのランタイム エラー チェックを有効にします。
- [初期化されていない変数] - 変数が初期化されずに使用されている場合に報告します。
- 両方 (/RTC1,equiv. to /RTCsu) - 等価の
/RTCsu
. - [既定値] - 既定のランタイム チェック。
ランタイム ライブラリ
リンクするランタイム ライブラリを指定します。 /MT
、/MTd
、/MD
、/MDd
を設定します。
選択肢(複数)
- [マルチスレッド] - アプリケーションで、ランタイム ライブラリのマルチスレッド、静的バージョンが使用されます。
- マルチスレッド デバッグ - 定義
_DEBUG
と_MT
. また、このオプションにより、リンカーが外部シンボルの解決に.obj
使用LIBCMTD.lib
できるように、コンパイラによってライブラリ名LIBCMTD.lib
がファイルに配置されます。 - [マルチスレッド DLL] - アプリケーションで、ランタイム ライブラリのマルチスレッドおよび DLL 対応バージョンが使用されます。
_MT
および_DLL
を定義し、コンパイラにライブラリ名 MSVCRT.lib を.obj
ファイルに挿入させます。 - [マルチスレッド デバッグ DLL] -
_DEBUG
、_MT
、_DLL
が定義され、アプリケーションで、ランタイム ライブラリのデバッグ マルチスレッドおよび DLL 対応バージョンが使用されます。 また、コンパイラによってライブラリ名MSVCRTD.lib
がファイルに配置されます.obj
。
構造体メンバーのアラインメント
構造体メンバーのアラインメントについて 1、2、4、または 8 バイトの境界を指定します。 /Zp
を設定します。
選択肢(複数)
- 1 バイト - 1 バイト 境界上の構造体をパックします。
/Zp
と同じ。 - 2 バイト - 2 バイト境界上の構造体をパックします。
- 4 バイト - 4 バイト境界上の構造体をパックします。
- 8 バイト - 8 バイト 境界の構造体をパックします (既定)。
- 16 バイト - 16 バイト境界上の構造体をパックします。
- [既定値] - 既定のアラインメント設定。
セキュリティ チェック
セキュリティ チェックでは、プログラムのセキュリティに対する一般的な攻撃であるスタックバッファー オーバーランを検出できます。
選択肢(複数)
- セキュリティ チェックを無効にします - セキュリティ チェックを無効にします。
/GS-
を設定します。 - セキュリティ チェックを有効にします - セキュリティ チェックを有効にします。
/GS
を設定します。
制御フロー ガード
ガードのセキュリティ チェックは、不正なコード ブロックにディスパッチする試みを検出するのに役立ちます。
選択肢(複数)
- [はい] - ガード セット
/guard:cf
でセキュリティ チェックを有効にします。 - いいえ
関数レベルでリンクする
コンパイラが個々の関数をパッケージ関数 (COMDAT) の形式でパッケージ化できるようになります。 エディット コンティニュの機能に必要です。 /Gy
を設定します。
並列コード生成を有効にする
最適化が有効な場合に、#pragma loop(hint_parallel[(n)])
の使用が検出されたループに対して、コンパイラが並列コードを生成できるようにします。
拡張命令セットを有効にする
拡張命令セットをサポートする、プロセッサ上で検出された命令の使用を有効にします。 たとえば、IA-32 に対する SSE、SSE2、AVX、AVX2 の各強化などです。 または、x64 に対する AVX と AVX2 の強化などです。 現在、/arch:SSE
と /arch:SSE2
は、x86 アーキテクチャ用にビルドする場合にのみ使用できます。 オプションが指定されていない場合、コンパイラは S Standard Edition 2 をサポートするプロセッサで見つかった命令を使用します。 拡張命令の使用は、/arch:IA32
によって無効にすることができます。 詳細については、「/arch (x86)
」、「/arch (x64)
」、「/arch (ARM64)
」、および「/arch (ARM)
」を参照してください。
選択肢(複数)
- [ストリーミング SIMD 拡張命令] - ストリーミング SIMD 拡張命令。
/arch:SSE
を設定します - [ストリーミング SIMD 拡張命令 2] - ストリーミング SIMD 拡張命令 2。
/arch:SSE2
を設定します - [Advanced Vector Extensions] - Advanced Vector Extensions。
/arch:AVX
を設定します - [Advanced Vector Extensions 2] - Advanced Vector Extensions 2。
/arch:AVX2
を設定します - [拡張命令なし] - 拡張命令なし。
/arch:IA32
を設定します - [設定なし] - 設定なし。
浮動小数点モデル
浮動小数点モデルを設定します。 /fp:precise
、/fp:strict
、/fp:fast
を設定します。
選択肢(複数)
- [Precise] - 既定値。 等値と非等値について浮動小数点テストの一貫性を向上させます。
- [Strict] - 最も厳密な浮動小数点モデル。
/fp:strict
によって、fp_contract
がオフとなり、fenv_access
がオンとなります。/fp:except
は、暗黙的に指定されていますが、/fp:except-
を明示的に指定することで無効にできます。/fp:except-
と共に使用する場合、/fp:strict
は厳密な浮動小数点のセマンティクスを適用しますが、例外イベントは無視します。 - [Fast] - ほとんどの場合、最高速のコードを作成します。
浮動小数点例外を有効にする
信頼性の高い浮動小数点例外モデル。 例外は発生直後にスローされます。 /fp:except
を設定します。
ホットパッチ可能なイメージの作成
ホットパッチがオンの場合、コンパイラによって、各関数の最初の命令が確実にホットパッチに必要な 2 バイトになります。 /hotpatch
を設定します。
Spectre 軽減策
CVE 2017-5753 の Spectre 軽減策。 /Qspectre
を設定します。
選択肢(複数)
- [有効] - CVE 2017-5753 の Spectre 軽減策機能を有効にします
- [無効] - 設定されません。
C/C++ 言語プロパティ
言語拡張機能を無効にする
言語拡張機能を抑制または有効にします。 /Za
を設定します。
WChar_tを組み込み型として扱う
指定した場合、型 wchar_t
は __wchar_t
にマップされるネイティブ型になります (short
が __int16
にマップされるのと同じ方法です)。 /Zc:wchar_t
は既定でオンです。
for ループ スコープの準拠を強制する
Microsoft の拡張機能の for
ステートメント ループの標準 C++ 動作を実装します。 /Za
、/Ze
(言語拡張機能の無効化を設定します。 /Zc:forScope
は既定でオンです。
参照されていないコードとデータを削除する
指定した場合、参照されていないコードとデータのシンボル情報がコンパイラによって生成されなくなります。
適用 (型変換規則を)
C++11 標準に従ったキャスト演算の結果として右辺値参照型を特定するために使います。
ランタイム型情報を有効にする
実行時に C++ のオブジェクト型をチェックするコードを追加します ("ランタイム型情報" または RTTI)。 /GR
、/GR-
を設定します。
Open MP のサポート
OpenMP 2.0 言語拡張機能を有効にします。 /openmp
を設定します。
C++ 言語標準
コンパイラが有効にする C++ 言語標準を決定します。 既定値では標準オプションが設定されないため、コンパイラでは既定の C++14 設定が使用されます。 特定の値を選択した場合、対応する /std
コンパイラ オプションが設定されます。md).
選択肢(複数)
- 既定値 (ISO C++14 標準)
- ISO C++14 標準 (/std:c++14)
- ISO C++17 標準 (/std:c++17)
- ISO C++20 標準 (/std:c++20)
- プレビュー - 最新の C++ Working Draft からの機能 (/std:c++latest)
C 言語標準
コンパイラが有効にする C 言語標準を決定します。 既定値では標準オプションが設定されないため、コンパイラは既定のレガシ MSVC 設定を使用します。 特定の値を選択した場合、対応する /std
コンパイラ オプションが設定されます。md).
選択肢(複数)
- 既定値 (レガシ MSVC)
- ISO C11 標準 (/std:c11)
- ISO C17 (2018) Standard (/std:c17)
準拠モード
準拠モードを有効または抑制します。 /permissive-
を設定します。
試験段階の C++ 標準ライブラリ モジュールを有効にする
C++ モジュール TS および標準ライブラリ モジュールの試験的なサポートです。
ISO C++23 標準ライブラリ モジュールをビルドする
Visual Studio 17.6 以降では、このプロパティが有効 で C++ 言語標準 が設定 /std:c++latest
されている場合、Visual C++ プロジェクトは ISO C++23 標準ライブラリ モジュールを自動的に検索してビルドします。 これにより、C++ コードに import std
対して、または import std.compat
C++ コードを使用できるようになります。
C/C++ プリコンパイル済みヘッダー プロパティ
プリコンパイル済みヘッダーの作成と使用
プリコンパイル済みヘッダーをビルド中に作成または使用できるようになります。 /Yc
、/Yu
を設定します。
選択肢(複数)
- [作成] - 特定の時点でのコンパイルの状態を表すプリコンパイル済みヘッダー (
.pch
) ファイルを作成するようにコンパイラに指示します。 - [使用] - 現在のコンパイルで既存のプリコンパイル済みヘッダー (
.pch
) ファイルを使用するようにコンパイラに指示します。 - [プリコンパイル済みヘッダーを使用しない] - プリコンパイル済みヘッダーを使用しません。
プリコンパイル済みヘッダー ファイル
プリコンパイル済みヘッダー ファイルの作成時または使用時に使うヘッダー ファイル名を指定します。 /Yc
、/Yu
を設定します。
プリコンパイル済みヘッダーの出力ファイル
生成するプリコンパイル済みヘッダー ファイルのパスまたは名前を指定します。 /Fp
を設定します。
C/C++ 出力ファイル プロパティ
属性ソースの展開
ソース ファイルに拡張された属性を挿入して、リスティング ファイルを作成します。 /Fx
を設定します。
アセンブラー出力
アセンブリ言語の出力ファイルの内容を指定します。 /FA
、/FAc
、/FAs
、/FAcs
を設定します。
選択肢(複数)
- [なし] - リスティングなし。
- [アセンブリ コードのみ] - アセンブリ コード:
.asm
- [アセンブリ コードとコンピューター語コード] - コンピューター語コードとアセンブリ コード:
.cod
- [アセンブリ コードとソース コード] - ソース コードとアセンブリ コード:
.asm
- [アセンブリ コード、コンピューター語コード、ソース コード] - アセンブリ コード、コンピューター語コード、ソース コード:
.cod
アセンブラー リスティングに Unicode を使う
出力ファイルが UTF-8 形式で作成されます。
ASM リストの場所
ASM リスティング ファイルの相対パスまたは名前を指定します。ファイル名またはディレクトリ名を指定できます。 /Fa
を設定します。
オブジェクト ファイル名
既定のオブジェクト ファイル名をオーバーライドする名前を指定します。ファイル名またはディレクトリ名を指定できます。 /Fo
を設定します。
プログラム データベース ファイル名
コンパイラによって生成される PDB ファイルの名前を指定します。また、コンパイラによって生成される必須の IDB ファイルのベース名も指定します。ファイル名またはディレクトリ名を指定できます。 /Fd
を設定します。
XML ドキュメント ファイルを生成する
コンパイラが XML ドキュメント コメント ファイル (.XDC) を生成するように指定します。 /doc
を設定します。
XML ドキュメント ファイル名
生成される XML ドキュメント ファイルの名前を指定します。ファイル名またはディレクトリ名を指定できます。 /doc:
<名前> を設定します。
C/C++ ブラウザー情報プロパティ
ブラウザー情報の有効化
.bsc
ファイルのブラウザー情報のレベルを指定します。 /FR
を設定します。
ブラウザー情報ファイル
ブラウザー情報ファイルの名前を指定します (省略可能)。 /FR
<名前> を設定します。
外部インクルード
山かっこでインクルードされたファイルを外部として扱う
山かっこでインクルードされたファイルを外部として扱うかどうかを指定します。 /external:anglebrackets
コンパイラ オプションを設定するには、このプロパティを [はい] に設定します。
外部ヘッダーの警告レベル
外部ヘッダー内のコード エラーに対するコンパイラの警告レベルを指定します。 このプロパティによって、/external:Wn
コンパイラ オプションが設定されます。 この値が [プロジェクトの警戒レベルの継承] または既定値に設定されている場合、他の /external
オプションは無視されます。
外部ヘッダーのテンプレート診断
テンプレート インスタンス化チェーンにおける警告レベルを評価するかどうかを指定します。 /external:templates-
コンパイラ オプションを設定するには、このプロパティを [はい] に設定します。
外部ヘッダーのコード分析を無効にする
外部ヘッダーのコード分析を無効にします。 /analyze:external-
コンパイラ オプションを設定します。
外部ヘッダーの分析ルールセット
外部ヘッダーに対して、コード分析ルールセットのオーバーライドを指定します。 指定しない場合は、コード分析設定が使用されます。 /analyze:external:ruleset path
コンパイラ オプションを設定します。
C/C++ 詳細プロパティ
呼び出し規則
アプリケーションの既定の呼び出し規則を選択します (関数によってオーバーライドできます)。 /Gd
、/Gr
、/Gz
、/Gv
を設定します。
選択肢(複数)
__cdecl
- C++ メンバー関数と__stdcall
または__fastcall
とマークされている関数を除く、すべての関数に対する__cdecl
呼び出し規則を指定します。__fastcall
- C++ メンバー関数と__cdecl
または__stdcall
とマークされている関数を除く、すべての関数に対する__fastcall
呼び出し規則を指定します。 すべての__fastcall
関数には、プロトタイプ宣言が必要です。__stdcall
- C++ メンバー関数と__cdecl
または__fastcall
とマークされている関数を除く、すべての関数に対する__stdcall
呼び出し規則を指定します。 すべての__stdcall
関数には、プロトタイプ宣言が必要です。__vectorcall
- C++ メンバー関数と__cdecl
、__fastcall
、または__stdcall
とマークされている関数を除く、すべての関数に対する__vectorcall
呼び出し規則を指定します。 すべての__vectorcall
関数には、プロトタイプ宣言が必要です。
コンパイル言語の選択
ソース ファイルのコンパイル言語オプションを選択します。 、//TP
interface、/internalPartition
またはオプションを/exportHeader
設定/TC
します。
選択肢(複数)
- 既定 - 既定。
- C コードとしてコンパイル (
/TC
) - 指定されたソース ファイルを C コードとしてコンパイルします。 既定では、拡張子が付いた.c
ファイルは C としてコンパイルされます。 - C++ コードとしてコンパイル (
/TP
) - 指定されたソース ファイルを C++ コードとしてコンパイルします。 既定では、拡張子を持.c
たない、.ixx
または.cppm
.h
拡張子のないすべてのソース ファイルが C++ としてコンパイルされます。 - C++ モジュール コードとしてコンパイルする (
/interface
) - 指定したソース ファイルを C++ モジュール コードとしてコンパイルします。 既定では、拡張子または.cppm
拡張子を.ixx
持つファイルは C++ モジュール コードとしてコンパイルされます。 - C++ モジュール内部パーティションとしてコンパイルする (
/internalPartition
) - 指定されたソース ファイルを C++ モジュールの内部パーティションとしてコンパイルします。 - C++ ヘッダー ユニットとしてコンパイル (
/exportHeader
) - 指定されたソース ファイルを C++ ヘッダー ユニットとしてコンパイルします。 既定では、拡張子が付.h
いているファイルまたは拡張子のないファイルは、ヘッダー ユニットとしてコンパイルされます。
特定の警告を無効にする
指定した警告番号を無効にします。 警告番号はセミコロンで区切ったリストで指定します。 /wd
<番号> を設定します。
必ず使用されるインクルード ファイル
1 つ以上の必ず使用されるインクルード ファイル。 /FI
<名前> を設定します。
強制 #using ファイル
1 つ以上の強制 #using ファイルを指定します。 /FU
<名前> を設定します。
インクルード ファイルの表示
コンパイラ出力を持つインクルード ファイルのリストを生成します。 /showIncludes
を設定します。
完全なパスを使用する
診断メッセージで完全なパスを使います。 /FC
を設定します。
既定のライブラリ名の省略
.obj
ファイルに既定のライブラリ名を含めません。 /Zl
を設定します。
内部コンパイル エラー報告
Note
このオプションは非推奨です。 Windows Vista 以降では、エラー報告は Windows エラー報告 (WER) の設定によって制御されます。
特定の警告をエラーとして扱う
特定のコンパイラ警告をエラーとして扱います。n はコンパイラの警告です。
追加オプション
その他のオプション。