/NODEFAULTLIB (ライブラリを無視する)
/NODEFAULTLIB[:library]
解説
それぞれの文字について以下に説明します。
- library
外部参照を解決するときに無視するライブラリを指定します。
解説
/NODEFAULTLIB オプションは、リンカーが外部参照を解決するときに検索するライブラリ リストから、検索の必要がない既定のライブラリを 1 つ以上除外します。
既定のライブラリへの参照を含まない .obj ファイルを作成するには、/Zl (既定のライブラリ名の省略) を使用します。
/NODEFAULTLIB は、既定では、外部参照を解決するときに検索するライブラリ リストから、既定のライブラリをすべて除外します。 library パラメーター (省略可能) を指定して、外部参照を解決するときに検索するライブラリのリストから、複数のライブラリを指定して除外できます。 除外するライブラリごとに /NODEFAULTLIB オプションを 1 つずつ指定します。
リンカーが外部参照を解決するときは、まず明示的に指定されたライブラリを検索し、次に /DEFAULTLIB オプションで指定された既定のライブラリを検索します。その後、.obj ファイルで指定された既定のライブラリを検索します。
/NODEFAULTLIB:library と /DEFAULTLIB:library で同じライブラリ名を指定すると、前者の指定が優先されるためそのライブラリは検索されません。
たとえば、/NODEFAULTLIB を使用して C ランタイム ライブラリなしでプログラムをビルドするときは、/ENTRY も使用して、プログラムのエントリ ポイント (関数) を指定することが必要な場合もあります。 詳細については、「C ランタイム ライブラリ」を参照してください。
Visual Studio 開発環境でこのリンカー オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、「Visual C++ プロジェクトのプロパティの設定」を参照してください。
[リンカー] フォルダーをクリックします。
[入力] プロパティ ページをクリックします。
[すべての既定のライブラリの無視] プロパティをクリックするか、無視するライブラリのリストを [特定のライブラリの無視] プロパティで指定します。 [コマンド ライン] プロパティ ページに、これらのプロパティに加えた変更内容が反映されます。
このリンカーをコードから設定するには
- 詳細については、「IgnoreDefaultLibraryNames」および「IgnoreAllDefaultLibraries」を参照してください。