C++ Visual Studio 2013致命错误C1041/FS
我正在使用Visual Studio 2013。偶尔项目会拒绝编译。如果我撤消任何更改,它仍然不会编译。我发现重新创建整个项目是可行的。不过,我想实际解决这个问题。我得到的错误是:C++ Visual Studio 2013致命错误C1041/FS,c++,compiler-errors,visual-studio-2013,C++,Compiler Errors,Visual Studio 2013,我正在使用Visual Studio 2013。偶尔项目会拒绝编译。如果我撤消任何更改,它仍然不会编译。我发现重新创建整个项目是可行的。不过,我想实际解决这个问题。我得到的错误是: 1>Critic.cpp : fatal error C1041: cannot open program database 'c:\users\username\desktop\projectName\projectName\x64\debug\vc120.pdb'; if multiple CL.EXE w
1>Critic.cpp : fatal error C1041: cannot open program database 'c:\users\username\desktop\projectName\projectName\x64\debug\vc120.pdb'; if multiple CL.EXE write to the same .PDB file, please use /FS
我尝试过按照这些说明操作,但没有效果:
是否有其他人遇到过此问题并找到了修复方法?我在VS2013上编译时发现了相同的问题(该错误特别出现在libkml解决方案中的libkmlxsd项目中)
国旗对我有用。但我必须在解决方案中设置所有项目,并重新构建所有项目,以使其正常工作。我同意PThomasCS 首先,我尝试使用Microsoft advice: 在Visual Studio开发环境中设置此编译器选项
希望这能有所帮助。我也遇到了同样的问题 删除完整的$(IntDir)对我很有效。这里也有同样的问题
STRING(REGEX REPLACE "/Zi" "/Z7" CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}")
STRING(REGEX REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
- /财政司司长没有工作
- 删除VS2013文件无效
- 重新启动计算机不起作用
- 从项目中删除头文件和源文件并重新添加它们不起作用
- 关闭google drive和dropbox不起作用
我必须删除损坏的副本并使用备份副本-通常每天,我都会将工作文件夹的副本放入每个项目的C/C++->General设置页面中的备份驱动器中,将多处理器编译选项设置为否对我有帮助。我遇到了这个问题,因为解决方案中的不同项目具有相同的中间目录 改变
$(Platform)\$(Configuration)\
到
在
配置属性|常规|中间目录
在每个项目中都解决了它。如果解决方案中有多个项目,则需要向每个项目添加/FS以使其正常工作。只需选择项目->属性->C/C++->命令行->其他选项。对我来说,解决这个问题的方法是手动终止mspdbsrv进程。其中的某些东西有时不能很好地处理并发构建,并陷入错误状态。
下一个版本重新启动了pdb服务器,一切恢复正常。我正在运行备份服务。我的问题是,当编译器试图写出.pdb文件时,备份服务一直在备份上一次编译中的新.pdb文件。通过从备份中排除.pdb文件,我彻底解决了这个问题
这类问题很难追踪,因为它是间歇性的。备份完成后,当编译器创建新的.pdb文件时,不再存在冲突,因此您可能认为其他一些解决方案可行。需要将/FS标记放在链接器命令行中。工作良好如果使用CUDA,则设置
Project->Properties->CUDA C/C++->Host->Additional Compiler Options->/FS删除整个调试目录。我也遇到了这个问题,我通过从Project目录中删除.pdb文件并重新编译解决了这个问题。我也遇到了同样的问题,该项目的中间目录为空。因此,被接受的解决方案对我不起作用
我通过在错误的项目中进行清理和构建,错误的
< P>我有一个类似的问题:C++对我的团队中的其他人建立的罚款将不会为我正确构建(给出了PDB/FS错误,如问题中提到的),有时也会链接错误。有人指出,我正在将一份回购协议克隆到我的Dropbox中的某个位置。在尝试了许多其他的想法之后,我终于在一个非dropbox位置创建了一个新的克隆,解决方案编译时没有错误。我怀疑这个问题可能是其他文件同步服务的常见问题。(Box、Google drive等),尽管我还没有测试它们。正如错误消息所提示的,当多个进程试图同时访问项目的PDB文件时会发生此错误,如果启用并行编译,则会发生此错误(我遇到了第三方生成计划程序的问题,我不确定当生成由VisualStudio自己的计划程序管理时是否也会发生这种情况) 使用/FS编译器选项的说明为您指明了正确的方向,诀窍是确保编译器选项始终用于编译 如果使用生成解决方案文件,则应在CMAKE\u C\u标志
中指定/FS标志和/或CMAKE\u CXX\u标志
(要查看这些标志,可能需要勾选CMAKE GUI中的“高级”复选框)并重新生成解决方案
Error 112 error C1041: cannot open program database 'd:\gstabel\falkermap2\libkml-1.2.0\msvc\debug\vc120.pdb'; if multiple CL.EXE write to the same .PDB file, please use /FS d:\gstabel\falkermap2\libkml-1.2.0\src\stdafx.cpp 1 1 libkmlxsd
如果您正在使用CUDA,如中所述,您需要确保主机编译器也设置了该标志。对于Visual Studio生成的解决方案,请在项目属性页的CUDA C/C++->host->Additional compiler选项中设置该标志。
然而,对于CGED生成的解决方案文件,您将没有任何CUDA C++属性页,因此需要编辑CMAGE配置。
只需将/FS标志添加到上面提到的
CMAKE{C,CXX}\u标志
,并检查CUDA\u PROPAGATE\u HOST\u标志
是否设置为ON()。我遇到了同样的问题,解决方案非常简单:磁盘已满
但在这种情况下,错误消息没有太大帮助。。。
我是通过使用进程监视器找到的。我在构建Qt C时遇到了这个问题
STRING(REGEX REPLACE "/Zi" "/Z7" CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}")
STRING(REGEX REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")