/Zl (既定のライブラリ名の省略)
.obj ファイルから、既定の C ランタイム ライブラリ名を削除します。既定では、リンカーに正しいライブラリを指示するために、コンパイラによって .obj ファイルにライブラリ名が埋め込まれます。
/Zl
解説
既定のライブラリの詳細については、「/MD、/ML、/MT、/LD (ランタイム ライブラリの使用)」を参照してください。
/Zl オプションは、ライブラリに格納する予定の .obj ファイルをコンパイルするときに使います。単一の .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 開発環境でこのコンパイラ オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。詳細については、「方法 : プロジェクト プロパティ ページを開く」を参照してください。
[C/C++] フォルダーをクリックします。
[詳細] プロパティ ページをクリックします。
[既定ライブラリ名の省略] プロパティを変更します。
このコンパイラ オプションをコードから設定するには
- OmitDefaultLibName を参照してください。