Я смущаюсь относительно того, какая разница между файлами-компиляторами и компоновщиками PDB
соответственно (т.е. в Visual Studio, Project Properties > C/C++ > Output Files > Program Database File Name
vs Project Properties > Linker > Debugging
). Я попытался найти ответ в сети и до сих пор знаю (может быть, неправильно), что файл PDB
компилятором генерируется для файлов obj
, а файл PDB
компоновщиком создается для двоичного (exe или dll) и используется для отладки.
Если это неверно, объясните разницу. В любом случае, что делать, когда я создаю DLL
, где у меня есть возможность выбрать выходной файл PDB
для компилятора, а также компоновщик и что делать, когда я создаю файл LIB, где только компилятор генерирует файлы PDB
, поскольку не выполняется никакого связывания.
Фон: Библиотеки /DLL используются несколькими проектами, которые затем нуждаются в файлах
PDB
для отладки. В случае файлаlib
нет никакой двусмысленности, поскольку создается только одинPDB
файл. Но в случаеDLL
, однако, нужны ли мне файлыPDB
для правильной отладки или только тот, который сгенерирован компоновщиком?