在Visual Studio 2003中,如果链接到没有相应PDB文件的库,则会收到警告:
foo.lib(bar.obj):警告LNK 4099:未找到PDB 'other.pdb';链接对象,如同没有调试信息一样
如果PDB在原始的构建位置,VS可以找到它们,如果它们在当前的构建目录中,但这似乎是它。有没有一种方法可以告诉Visual Studio它应该在哪里寻找PDB?我有一个模糊的概念,符号服务器可能会工作,但这似乎是一个很大的开销;我只是在寻找像link.exe /pdbpath c:\pdbs_are_right_here
这样的东西,它添加了一个路径来搜索,比如/I
添加了一个include路径。或者,除了当前目录和PDB被写入的原始绝对路径之外,它还搜索其他路径吗?
1条答案
按热度按时间x8diyxa71#
我相信到相应的pdb的路径是嵌入在库本身中的,你可以在你的库的构建开关处将它改为c:\pdbs_are_right_here(假设它们确实是你的而不是第三方的)。
对于DLL,这意味着项目属性\链接器\调试\生成程序数据库文件。
对于 static 库,默认名称在VS2013中是统一的('vc120.pdb'),但我认为这在VS2015中改变了,并且不知道VS2003。无论如何,如果你在VS2013\2012\2010中工作,你也必须显式覆盖名称。