我的开发环境是Win7旗舰64位+VS2003.Net,经常卡pdb错误,文末给出一个完美的解决方案和一个懒人补丁包。问题描述如下:在重新编译的时候,经常报错:
fatal error LNK1201: 写入程序数据库“.pdb”时出错;请检查是否是磁盘空间不足、路径无效或权限不够
原因是编译要生成.pdb文件,但是这个.pdb文件又被VS的进程独占,所以生成失败。这个现象由来已久,MSDN上有外国开发者指出这是VS的老毛病了,而且win7并不在vs2003的支持列表里,你找微软说理人家也不鸟你。网上有国人扯什么
当你编译某一项目时,该项目的pdb文件正被另一处于调试状态下的编译器所使用,编译无法向项目pdb文件写入数据,无奈之下,编译器只好向你报LNK1201错误请求你协助解决。
最后还扯什么检查自己的linker,重启VS什么的,全是瞎扯,有些程序员遇到问题总是习惯先从自己身上找毛病,我认为这是奴才德性。明明是微软自己不兼容的bug,干吗替人家背黑锅?
好了不扯远了,来看看解决方案吧,既然问题由pdb文件引起,那么就应该拿跟pdb有关的选项动刀。
第一个方案的中心思想是不生成pdb文件:
打开项目属性–>链接器–>调试,去掉调试信息,干掉PDB文件,以后不依赖PDB就好了。
但是这样你就等于阉割了VS的调试功能,果然是欲练此功必先自宫呀。
第二个方案的中心思想是在生成pdb文件之前,