在Visual Studio 2003中,如果我链接到没有相应PDB文件的库,我会收到警告:
foo.lib(bar.obj):警告LNK4099:找不到PDB'other.pdb';链接对象就像没有调试信息一样
如果PDB位于其原始构建位置,VS可以找到它们,以及它们是否位于当前构建目录中,但似乎就是这样。有没有办法告诉Visual Studio究竟应该在哪里寻找PDB?我有一个模糊的概念,一个符号服务器可能会工作,但这似乎是很多开销;我只是在寻找像link.exe /pdbpath c:\pdbs_are_right_here
那样添加搜索路径的内容,例如/I
添加一个包含路径。或者,除了当前目录和PDB写入的原始绝对路径之外,还有其他路径吗?
答案 0 :(得分:0)
我相信相应pdb的路径嵌入了库本身,您可以在库的构建开关中将其更改为c:\ pdbs_are_right_here(假设它们确实是您的而不是第三方)
对于DLL,这意味着项目属性\ linker \ debugging \ generate program database file。
对于静态库,默认名称在VS2013中是统一的(' vc120.pdb'),但我认为这在VS2015中有所改变,并且不知道VS2003。无论如何,如果您在VS2013 \ 2012 \ 2010中工作,您也必须明确覆盖该名称。