在某个配置VS 2010中缺少特定项目上的符号

时间:2014-05-09 10:13:22

标签: c++ visual-studio-2010 pdb missing-symbols

我已经谷歌搜索并暂时调查了这个问题,但没有成功。我目前正在使用Visual Studio 2010 C ++解决方案,并在Windows上运行生成的可执行文件。该解决方案有多种配置,其中一些代码和库是特定于配置的,但一般框架在所有配置之间共享。

我遇到的问题是,对于调用堆栈的某个配置部分,符号不会显示出来!缺少的符号位于特定的静态库上,并且对于该lib的所有引用似乎都是一致的。 lib也在配置之间共享,并且符号在其他配置中正确显示。

所以我想找出原因可能是什么原因。如果有人过去经历过这种情况吗?

如果我点击"符号加载信息"我在工作和错误配置中获得了相同的结果,可执行文件的pdb路径。因此,出于某种原因,似乎这个特定lib的符号不会包含在pdb中。然而,生成了lib的单个pdb。即使很多sbr文件都是空的,也会生成bsc和sbr文件。

如果有人知道如何解决这个问题,或者对我应该尝试或注意的事情有所了解,我会很高兴吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

在链接可执行文件时,静态库的PDB必须可用,并且与静态库本身位于同一目录中。否则,其调试信息将不会合并到可执行文件的PDB中。 (在调试会话期间不可能直接使用静态库PDB。)

如果您想使事情更可靠,请确保将静态库设置为项目间引用,而不是将其作为“项目依赖项”。您不应手动将库名称放在可执行文件的链接器输入中。

相关问题