/FS(强制同步 PDB 写入)

强制写入要通过 MSPDBSRV.EXE 进行序列化的程序数据库 (PDB) 文件(由 /Zi/ZI 创建)。

语法

/FS

备注

默认情况下,当指定 /Zi 或 /ZI 时,编译器将锁定 PDB 文件以写入类型信息和符号调试信息。 当类型的数目很大时,这可以显著缩短编译器生成类型信息的时间。 如果另一个进程(例如某个防病毒程序)临时锁定了 PDB 文件,则编译器的写入可能失败并可能产生错误。 当 cl.exe 的多个副本访问同一 PDB 文件时,此问题也可能发生。例如,如果您的解决方案具有使用相同的中间目录或输出目录并启用了并行生成的独立项目。 /FS 编译器选项将阻止编译器锁定 PDB 文件,并强制在用来序列化访问的 MSPDBSRV.EXE 中进行写入。 这可能极大延长生成的时间,并且它无法阻止可能在 cl.exe 的多个实例同时访问 PDB 文件时发生的错误。 建议您更改解决方案,以便让独立项目对单独的中间文件和输出位置进行写入,或者您也可以使其中一个项目依赖于另一个项目来强制序列化项目生成。

默认情况下,/MP 选项将启用 /FS。

在 Visual Studio 开发环境中设置此编译器选项

  1. 打开项目的“属性页” 对话框。 有关详细信息,请参阅在 Visual Studio 中设置 C++ 编译器和生成属性

  2. 选择“配置属性”>“C/C++”>“命令行”属性页

  3. 修改“附加选项”属性以包含 /FS,然后选择“确定”。

以编程方式设置此编译器选项

另请参阅

MSVC 编译器选项
MSVC 编译器命令行语法