Visual Studio 2017 を使用することをお勧めします

/Zl (既定のライブラリ名の省略)

 

公開日: 2016年7月

Visual Studio 2017 RC の最新のドキュメントの詳細については、Visual Studio 2017 RC ドキュメントをご参照ください。

.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. [既定ライブラリ名の省略] プロパティを変更します。

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

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

表示: