LNK1201 on Visual C++ 2003

LNK1201 on Visual C++ 2003

本文关键字:2003 C++ Visual on LNK1201      更新时间:2023-10-16

每次调试运行后,我都在VS2003中完成了我的任何项目,因此我一直得到这个错误消息。我浏览了很多论坛,他们都提供了一个不适合实际问题的答案。

链接:致命错误LNK1201:错误写入程序数据库'd:CodingFlyffProjectsGUI System 20110721DebugGUI System 20110721.pdb';检查磁盘空间不足、路径无效或权限不足

我正在使用Windows 7 Ultimate x64 with Visual Studio 2003 . net (service pack VS7.1sp1-KB918007-X86.exe)。

我已经试过了:

  • 在其他几个操作系统和服务包的兼容模式下运行。
  • 设置项目文件夹写权限为full。
  • 以管理员身份运行Visual Studio。
  • 将调试信息格式编辑为其他格式。

要重现此错误,您必须使用Windows 7 x64(可能是Ultimate)。Visual Studio 2003 (with VS7.1sp1-KB918007-X86.exe update).

我有超过150gb的空间,所以它与此无关。

Visual Studio在调试时简单地锁定PDB文件,调试后无法解锁。

您还必须运行运行几秒钟的代码段,例如:

int APIENTRY WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine,     int nCmdShow )
{
    Sleep( 5000 );
    MessageBox( NULL, "Test", "", 0 );
    return 0;
}

希望有人有一个解决方案,因为我目前需要使用这个环境配置。

欢呼,Nicco .

我终于找到了一个解决这个困扰我很长时间的问题的方法:

1)下载并安装LockHunter(解锁文件的免费工具):

http://lockhunter.com/download.htm 之前

2)将LockHunter的安装目录添加到您的环境变量"path"中,以避免每次运行该实用程序时弹出烦人的管理员权限窗口。对于我(使用x64版本),它是:<>之前"C: Program Files LockHunter"

3)将以下预构建事件添加到遇到此问题的Visual Studio项目:

"LockHunter.exe/silent/unlock $(TargetDir)$(TargetName).pdb"

我在VS2003中遇到这个问题的唯一一次是在调试会话期间崩溃的时候。通常问题可以通过重新启动vs来解决,如果这不起作用,你必须重新启动调试器服务,在某些情况下Windows。

您可以尝试在预构建事件

的命令行中添加以下内容
net stop "Machine Debug Manager"
net start "Machine Debug Manager"

由于VS或调试管理器保持文件锁定,我担心这个问题是由更深层次的问题引起的。很有可能在你的VS安装中存在问题,有另一个服务或应用程序导致调试管理器和/或VS表现不佳。

我在VS2010中遇到这个错误,并尝试使用论坛中建议的方法修复它,但它们从未为我工作。最后,我退出VS2010并以Admin身份重新启动,这就成功了!

我在winXP SP3和vsc++ 2010 Express中有同样的问题,我解决了更改MyProject文件夹访问权限,取消勾选"只读"并适用于所有文件夹,子文件夹和文件。

以上答案都不适用于我的情况,但最终我找到了我的解决方案。

当项目规模增长和的大小"。pdb"文件超过300MB,错误累积。我在我的项目中更改调试信息属性并成功编译它。您只需要更改项目中的"调试信息格式"为"C7兼容(/Z7)"

配置属性>> C/c++>>通用>>调试信息格式的

在Windows 10上有类似的问题。这个答案提供了一个使用FreePDB工具的解决方案。