vc80.pdb - Как мне заставить его уйти и никогда больше не беспокоить меня? - PullRequest
14 голосов
/ 31 октября 2008

При сборке статических библиотек с VS2005 я получаю предупреждения компоновщика, что VC80.pdb не может быть найден с моим library.lib. Очевидно, что в результате функция редактирования и продолжения среды IDE не работает для любого проекта, который включает library.lib

Какая магия необходима, чтобы сообщить VS2005 о создании статической библиотеки с редактированием и продолжением отладочной информации, которая НЕ ссылается или не требует vs80.pdb при подключении к проекту?

- при дальнейшем понимании-- Итак, для того, чтобы редактировать и продолжать работать с предварительно скомпилированной статической библиотекой, нам нужно поместить файлы vs80.pdb и vs80.pdb в SVN вместе с .lib, И переименовать pdb / idb, чтобы предотвратить конфликтует при выполнении этого с несколькими предварительно скомпилированными библиотеками.

Ответы [ 2 ]

6 голосов
/ 31 октября 2008

vc80.pdb - это файл, который содержит отладочную информацию для вашей библиотеки. На страницах свойств Ide: свойства конфигурации: c \ c ++: выходные файлы позволяют переименовать это в нечто более подходящее, например, в имя вашей библиотеки. Когда компоновщик связывает вашу библиотеку с целевым exe-файлом, он ищет этот pdb (в библиотеке есть указатель на него) и извлекает информацию из этого pdb и помещает ее в pdb exe-файла.

/ Fd [имя] - это опция для переименования pdb / ZI - это опция для компиляции с pdb, которая включает в себя информацию Edit и Continue.

Все связанные библиотеки и финальная версия taget exe или dll нуждаются в / ZI, чтобы разрешить редактирование и продолжить.

Я создал крошечный testlib.lib и использовал «dumpbin / all», чтобы получить следующий указатель на отладочную информацию (это небольшой отрывок):

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.ñ
4 голосов
/ 04 мая 2010

Если вы можете жить без «редактирования и продолжения», попробуйте использовать / Z7 .
Я использую его для всех .lib файлов, которые хранятся в системе контроля версий. Файл .pdb не создается - отладочная информация хранится в файле .lib.

...