除非提供了可选库名称, /NODEFAULTLIB
否则链接器选项将删除链接器命令行上未显式指定的所有库。 这还包括#pragma
cl.exe
命令行开关、其他库引用的库,等等。
语法
]$
参数
library
希望链接器在解析外部引用时忽略的可选库名称。
注解
要创建不包含对默认库的引用的 .obj
文件,请使用 /Zl
(省略默认库名称)。
默认情况下,/NODEFAULTLIB
会从其在解析外部引用时搜索的库列表中移除所有默认库。 使用可选的 library
参数,可以从解析外部引用时搜索的库列表中移除指定的库。 为要排除的每个库指定一个 /NODEFAULTLIB
选项。
链接器会解析对外部定义的引用,其方法是现在显示指定的库中搜索,然后在由 /DEFAULTLIB
选项指定的默认库中搜索,接下来在 .obj
文件中命名的默认库中搜索。
在两者中指定了同一 /NODEFAULTLIB:
名称时,library
/DEFAULTLIB:
可替代 library
library
。
如果使用 /NODEFAULTLIB
在没有 C 运行时库的情况下生成程序,则可能还必须使用 /ENTRY
选项来指定程序中的入口点函数。 有关详细信息,请参阅 CRT 库功能。
在 Visual Studio 开发环境中设置此链接器选项
- 打开项目的“属性页” 对话框。 有关详细信息,请参阅设置编译器和生成属性。
- 选择“配置属性”“链接器”>“输入”属性页>。
- 修改“忽略所有默认库”属性。 或者,在“忽略特定默认库”属性中指定要忽略的库的分号分隔列表。 “链接器”“命令行”属性页显示了对这些属性所做更改的效果>。
- 选择“确定”或“应用”以保存更改。