/Zc:tlsGuards
(检查 TLS 初始化)
/Zc:tlsGuards
编译器选项为 DLL 中的线程本地存储 (TLS) 初始化生成运行时检查。
语法
]$
备注
/Zc:tlsGuards
编译器选项为 DLL 中的线程局部变量启用初始化检查。 以前,DLL 中的线程局部变量未正确初始化。 它们在第一次用于加载 DLL 之前存在的线程(而非加载 DLL 的线程)上未初始化。 /Zc:tlsGuards
选项启用更正此缺陷的代码。 此类 DLL 中的线程局部变量在第一次用于此类线程之前即会初始化。
/Zc:tlsGuards
选项是 Visual Studio 2019 版本 16.5 中的新选项。 此选项在所有编译器模式下默认处于打开状态。 通过使用 /Zc:tlsGuards-
编译器选项,可以禁用“针对使用线程局部变量的初始化进行测试”这一全新行为。 若要禁用特定线程局部变量的检查,请使用 [[msvc::no_tls_guard]]
属性。
在 Visual Studio 中设置此编译器选项
打开项目的“属性页” 对话框。 有关详细信息,请参阅在 Visual Studio 中设置 C++ 编译器和生成属性。
选择“配置属性”>“C/C++”>“命令行”属性页。
在“其他选项”中,添加
/Zc:tlsGuards
。 选择“确定”或“应用”以保存更改。