这个问题的表现就是:vs2003下编译过一次后,再一次编译运行,就会提示:LNK1201: 写入程序数据库“d:\xxxx\xxxx.pdb”时出错;请检查是否是磁盘空间不足、路径无效或权限不够。为什么会产生这个错误,没必要深究,反正知道就是因为vs2003在win7下不兼容产生的(这里很想吐槽一次,都用win7了,还用啥vs2003~~~)。
我是在第一用公司的vs2003时才知道这个错误的,然后一个老程序员给我发了一个freepdb.bat,放在vc7/bin里面,然后在项目属性的预生成事件中写入:freepdb $(TagetDir)$(TargetName).pdb。然后开始几次,能够正常,后来就又产生这个问题了,问那个程序员为啥,他说不太清楚,就再也没有问过我有没有解决了(吐槽:还是带我的师傅,啥都不管也是醉了,这个问题坑了我好久,当然,也是自己没有主动去问其他程序员~~)。其实之所以会这样,是因为系统没有handle.exe这个东西,把它放在和freepdb.pdb一个目录就行。
下面是我自己用的freepdb.pdb里面的代码,可以根据自己的情况灵活改变:
cd /d "%~dp0" for /f "tokens=2-3 skip=5 delims=:" %%a in (‘handle -p devenv.exe "%1"‘) do ( for /f "tokens=1,4" %%c in ("%%a %%b") do ( handle -p %%c -c %%d -y >NUL ) ) exit /b 0
关于代码的具体含义,我没有细看,毕竟很少有机会去用,等有时间再去研究下.bat预处理文件的语法。
另外,自己也是太不积极去解决问题,其实只要去问下别的程序员就能解决,也不会这样用了几个月的vs2003,每次重新编译都得重新启动vs,浪费了多少时间呀~~~~~~~
时间: 2024-10-07 09:07:41