链接选项

CRT lib 目录包括几个无需任何代码更改就能启用特定 CRT 功能的小型对象文件。 这些对象文件被称为“链接选项”,因为你只需将它们添加到链接器命令行就能使用。

这些对象的 CLR 纯模式版本在 Visual Studio 2015 中已弃用并在 Visual Studio 2017 中不受支持。 将常规版本用于本机和 /clr 代码。

本机和 /clr 纯模式 说明
binmode.obj pbinmode.obj 为二进制设置默认文件转换模式。 请参阅 _fmode
chkstk.obj 不适用 在未使用 CRT 时提供堆栈检查和分配支持。
commode.obj pcommode.obj 设置用于“提交”的全局提交标志。 请参阅fopen_wfopenfopen_s_wfopen_s
exe_initialize_mta.lib 不适用 在 EXE 启动期间初始化 MTA 单元,以便在全局智能指针中使用 COM 对象。 此选项在关闭期间会泄漏 MTA 单元引用,所以请不要将其用于 DLL。 链接到此文件等效于包括 combase.h 和定义 _EXE_INITIALIZE_MTA。 使用此链接选项会将 onecore.lib 添加到默认库列表。 如果不需要此效果(例如使用 onecore_apiset.lib 或其他伞式库),请使用 /NODEFAULTLIB 重写此行为并提供替代方法。
fp10.obj 不适用 将默认精度控制更改为 64 位。 请参阅数学和浮点支持
invalidcontinue.obj pinvalidcontinue.obj 设置不执行任何操作的默认无效参数处理程序,这意味着传递到 CRT 函数的无效参数将只会设置 errno 并返回一个错误结果。
legacy_stdio_float_rounding.obj 不适用 使用 Windows 10 19041 通用 C 运行时打印浮点值(例如,使用 printf 时)的问题已得到解决。 它现在正确舍入完全可表示的浮点数,并采用 fesetround 请求的浮点舍入。 此行为更新在 Visual Studio 2019 版本 16.2 及更高版本中可用。 旧行为用于早期版本的 Visual Studio,或通过提供此链接选项进行使用。
loosefpmath.obj 不适用 确保浮点代码容忍不正常的值。
newmode.obj pnewmode.obj 导致 malloc 在失败时调用新处理程序。 请参阅_set_new_mode_set_new_handlercallocrealloc
noarg.obj pnoarg.obj 禁用所有 argc 和 argv 进程。
nochkclr.obj 不适用 不执行任何操作。 从项目中删除。
noenv.obj pnoenv.obj 禁止为 CRT 创建缓存环境。
nothrownew.obj pnothrownew.obj 启用 CRT 中新增功能的非引发版本。 请参阅 new 和 delete 运算符
setargv.obj psetargv.obj 启用命令行参数通配符扩展。 请参阅扩展通配符参数
threadlocale.obj pthreadlocale.obj 默认情况下,启用所有新线程的每线程区域设置。
wsetargv.obj pwsetargv.obj 启用命令行参数通配符扩展。 请参阅扩展通配符参数

另请参阅