阻止Visual Studio使用缓存的.pdbs

时间:2018-05-22 12:13:04

标签: visual-studio pdb

我做了以下实验:我创建了一个静态链接的C ++库解决方案MyLibrary(我从MSDN示例中获取代码:https://msdn.microsoft.com/en-us/library/ms235627.aspx。)并构建它。然后我使用Visual Studio(2017)中的控制台应用程序模板创建了另一个C ++解决方案MyConsoleApp。我将MyLibrary.lib文件复制到MyConsoleApp项目的根目录,并将MyLibrary.lib添加到Linker - >输入 - >附加依赖项(当然也必须复制标题)。我没做的是复制MyLibrary.pdb文件。

我希望得到关于丢失的.pdb文件的链接器警告,但事实并非如此。然后我只将MyConsoleApp移动到另一台机器并尝试再次构建它,这次得到一个缺少的.pdb链接器警告。似乎Visual Studio在机器上的某个位置构建解决方案时存储.pdb文件,并且能够在同一台计算机上链接其他解决方案时使用这些.pdb文件。

我希望能够禁用此行为或能够删除缓存的.pdbs,以便我可以确定在与其他开发人员共享工作时,他们不会收到警告,我没有收到警告自己的机器。

1 个答案:

答案 0 :(得分:0)

Visual Studio不会缓存.pdb文件。这里发生的是原始.pdb文件的绝对路径存储在构建输出(.exe,.dll或.obj文件)中,Visual Studio能够基于此来获取它。

请检查此答案,以防止出现这种情况:Remove PDB references from released file