/Zl (既定のライブラリ名の省略)
.obj ファイルの既定の C ランタイム ライブラリ名を省略します。 既定では、コンパイラでライブラリ名が .obj ファイルにプッシュされ、リンカーに適切なライブラリが示されます。
構文
/Zl
解説
既定のライブラリについて詳しくは、「ランタイム ライブラリの使用」をご覧ください。
/Zl は、ライブラリに格納する .obj ファイルをコンパイルするために使用できます。 ライブラリ名を省略することで節約される領域は、1 つの .obj ファイルについてはわずかですが、多くのオブジェクト モジュールを含んだライブラリでは、合計での節約領域が大きなものになります。
このオプションは拡張オプションです。 このオプションを設定すると、アプリケーションで必要になる可能性がある、特定の C ランタイム ライブラリのサポートが削除されるため、アプリケーションがそのサポートに依存している場合には、リンク時エラーが発生します。 このオプションを使用する場合は、必要なコンポーネントを他の方法で提供する必要があります。
/NODEFAULTLIB (ライブラリを無視する) を使用すると、 すべての .obj ファイル内のライブラリ参照を無視するようにリンカーを設定できます。
詳しくは、「CRT ライブラリの機能」をご覧ください。
/Zl を使用してコンパイルを行う際には、_VC_NODEFAULTLIB
が定義されます。 次に例を示します。
// vc_nodefaultlib.cpp
// compile with: /Zl
void Test() {
#ifdef _VC_NODEFAULTLIB
int i;
#endif
int i; // C2086
}
Visual Studio 開発環境でこのコンパイラ オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関する記事を参照してください。
[構成プロパティ]>[C/C++]>[詳細] プロパティ ページを選択します。
[既定ライブラリ名の省略] プロパティを変更します。
このコンパイラ オプションをコードから設定するには
- 以下を参照してください。OmitDefaultLibName