PTh*_*sCS 39 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 write to the same .PDB file, please use /FS
Run Code Online (Sandbox Code Playgroud)
我试过按照这些说明无济于事:http://msdn.microsoft.com/en-us/library/dn502518.aspx
有没有其他人遇到这个并找到了修复?
小智 51
我有这个问题,因为解决方案中的不同项目具有相同的中间目录.
更改
$(Platform)\$(Configuration)\
Run Code Online (Sandbox Code Playgroud)
至
$(Platform)\$(Configuration)\$(ProjectName)\
Run Code Online (Sandbox Code Playgroud)
在
配置属性 | 一般 | 中间目录
在每个项目中解决了它.
我同意PThomasCS.
首先,我尝试使用Microsoft建议/ FS(强制同步PDB写入):
在Visual Studio开发环境中设置此编译器选项
但它不起作用.
我注意到dropbox锁定了文件.我停止了同步.之后错误消失了.因此,尝试关闭/停止任何可能锁定文件的程序.
希望这可以帮助.
我在VS2013上发现了编译libkml的相同问题(该错误特别出现在libkml解决方案中的libkmlxsd项目中).
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
Run Code Online (Sandbox Code Playgroud)
该/ FS(强制同步PDB写入)标志为我工作.但我必须在解决方案中设置所有项目,并重建所有项目,以使其有效.
小智 5
我遇到了类似的问题:c ++ repos对于我团队中的其他人来说很好,但是我不能正确构建(给出问题中提到的.PDB/FS错误),有时还会链接错误.有人指出我正在将其中一个存储库克隆到Dropbox中的某个位置.在尝试了许多其他想法之后,我终于在非dropbox位置创建了一个新的克隆,并且解决方案编译时没有错误.我怀疑这个问题可能与其他文件同步服务相同.(盒子,谷歌驱动器等),虽然我没有测试过那些.
我用cmake生成的vs2017也有同样的问题。我尝试添加/FS两者CMAKE_C_FLAGS,CMAKE_CXX_FLAGS但没有帮助。我不想牺牲多处理器编译,因为我有一个相当大的项目,并且我希望使用我的 PC 上的所有可用内核尽快构建我的项目。
因此,我选择切换 cmake 的默认调试标志/Zi,/Z7将调试符号嵌入到.obj(类似于 GCC/Clang 的工作方式),而不是创建外部.pdb. 这对我有用。
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}")
Run Code Online (Sandbox Code Playgroud)
请注意,使用/Z7会使您的二进制文件明显变大。
| 归档时间: |
|
| 查看次数: |
43608 次 |
| 最近记录: |