При создании статической библиотеки (.LIB
) в MS Visual Studio 10 с отладочной информацией,
.PDB
всегда называется vc100.pdb
,
(в отличие от строительства .DLL
где отладочная информация [MyProjectName].pdb
)
Это проблема для меня, потому что я пытаюсь скопировать несколько разных библиотек (и их символы отладки) в каталог "PublishedLibraries"
, но все vc100.pdb
имена явно сталкиваются.
Я уверен, что я могу изменить имена каждого .PDB
чтобы соответствовать его .LIB
, но для меня больший вопрос Зачем Visual Studio думает vc100.pdb
это лучшее имя, чем projectA.pdb
??
Как нам работать с отладочной информацией из нескольких библиотек, если все имена конфликтуют?
Если вы используете / Z7 (вместо / ZI или / Zi) [в пользовательском интерфейсе C / C ++ -> General -> Debug Information Format], то отладочная информация внедряется в сам файл lib, а не в отдельный pdb, что означает вам не нужно беспокоиться об одном и том же имени.
Когда вы создадите свой окончательный исполняемый файл (.exe или .dll), вы получите объединенный pdb из всех маленьких встроенных pdb.
увидеть этот вопрос для получения дополнительной информации
Я всегда решал эту проблему в своей команде, так как вы не можете потерять отладочную информацию в процессе сборки. Это несколько раздувает libs [но не больше, чем наличие lib и pdb], но, поскольку вы, вероятно, не отправляете libs, вам не стоит сильно беспокоиться об этом.
Других решений пока нет …