次の方法で共有


/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 開発環境でこのコンパイラ オプションを設定するには

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。詳細については、「方法 : プロジェクト プロパティ ページを開く」を参照してください。

  2. [C/C++] フォルダーをクリックします。

  3. [詳細] プロパティ ページをクリックします。

  4. [既定ライブラリ名の省略] プロパティを変更します。

このコンパイラ オプションをコードから設定するには

参照

関連項目

コンパイラ オプション

コンパイラ オプションの設定