Visual c++ vc80.pdb-我如何让它消失,不再打扰我?

Visual c++ vc80.pdb-我如何让它消失,不再打扰我?,visual-c++,visual-studio-2005,Visual C++,Visual Studio 2005,使用VS2005构建静态库时,我不断收到链接器警告,在my library.lib中找不到VC80.pdb。显然,IDE的“编辑并继续”功能无法运行任何包含library.lib的项目 要让VS2005生成一个静态库,其中包含“编辑并继续”调试信息,而该信息在链接到项目中时不引用或不需要vs80.pdb,需要什么魔法 --经进一步了解-- 因此,为了获得编辑并继续使用预编译的静态库运行,我们需要将vs80.pdb和vs80.pdb文件与.lib一起放入SVN中,并重命名pdb/idb,以防止在使

使用VS2005构建静态库时,我不断收到链接器警告,在my library.lib中找不到VC80.pdb。显然,IDE的“编辑并继续”功能无法运行任何包含library.lib的项目

要让VS2005生成一个静态库,其中包含“编辑并继续”调试信息,而该信息在链接到项目中时不引用或不需要vs80.pdb,需要什么魔法

--经进一步了解--
因此,为了获得编辑并继续使用预编译的静态库运行,我们需要将vs80.pdb和vs80.pdb文件与.lib一起放入SVN中,并重命名pdb/idb,以防止在使用多个预编译的库执行此操作时发生冲突。

vc80.pdb是包含库调试信息的文件。在ide属性页中:配置属性:c\c++:输出文件允许您将其重命名为更合适的名称,例如库的名称。当链接器将您的库链接到目标exe时,它会查找此pdb(库中有指向它的指针),并从该pdb中提取信息并将其放入exe的pdb中

/Fd[名称]是用于重命名pdb的选项 /ZI是使用pdb进行编译的选项,pdb包含编辑和继续信息

所有链接的lib和最终的taget exe或dll都需要/ZI才能启用编辑并继续

我制作了一个很小的testlib.lib,并使用“dumpbin/all”获取以下内容,其中显示了指向调试信息的指针(这是一个很小的摘录):


如果您可以不使用“编辑并继续”,请尝试使用。

我将它用于存储在源代码管理中的所有.lib文件。没有创建.pdb文件-调试信息存储在.lib文件中。

我不明白的是,编译器设置中有一个使用/Fd[name]指定的pdb,默认为vc80.pdb,链接器设置中有一个pdb,默认为$(targetname)。pdb我始终需要两个pdb?是,不幸的是,VC工具集的设置似乎是NP完全的。有一个查看PDB内部的工具。这和dumpbin有助于理解调试信息在工具链中的流向。
SECTION HEADER #7
.debug$T name
       0 physical address
       0 virtual address
      48 size of raw data
     838 file pointer to raw data (00000838 to 0000087F)
       0 file pointer to relocation table
       0 file pointer to line numbers
       0 number of relocations
       0 number of line numbers
42100040 flags
         Initialized Data
         Discardable
         1 byte align
         Read Only

RAW DATA #7
  00000000: 04 00 00 00 42 00 15 15 D5 EA 1E C9 7C 10 3A 40  ....B...Õê.É|.:@
  00000010: 93 63 CE 95 77 15 49 4A 03 00 00 00 64 3A 5C 64  .cÎ.w.IJ....d:\d
  00000020: 65 76 5C 74 65 73 74 5C 74 65 73 74 6C 69 62 5C  ev\test\testlib\
  00000030: 74 65 73 74 6C 69 62 5C 64 65 62 75 67 5C 76 63  testlib\debug\vc
  00000040: 38 30 2E 70 64 62 00 F1                          80.pdb.ñ