На користь інших, я хоч би включав те, що робив.
Оскільки ви не можете змусити Visual Studio (у моєму випадку 2010) ігнорувати попередження LNK4204, мій підхід полягав у тому, щоб дати йому те, що він хотів: файли pdb. Оскільки я використовував бібліотеки з відкритим кодом у своєму випадку, у мене вже є код, що створює файли pdb.
Але, за замовчуванням, щоб усі файли PDF називали одне і те ж: vc100.pdb в моєму випадку. Оскільки вам потрібен .pdb для кожного .lib, це створює проблему, особливо якщо ви використовуєте щось на зразок ImageMagik, яке створює близько 20 статичних .lib-файлів. Ви не можете мати 20 файлів lib в одному каталозі (звідки посилання вашої програми посилаються на бібліотеки), а всі 20 .pdb файли називаються одним і тим же.
Моє рішення полягало в тому, щоб перейти до відновлення моїх статичних файлів бібліотеки та налаштувати VS2010 на ім'я .pdb-файла щодо ПРОЕКТУ. Таким чином, кожен .lib отримує аналогічну назву .pdb, і ви можете помістити всі LIB та PDB в один каталог для використання вашим проектом.
Отже, для конфігурації "Налагодження" я редагував:
Властивості-> Властивості конфігурації -> C / C ++ -> Вихідні файли -> Назва файлу бази даних програми від
$ (IntDir) vc $ (PlatformToolsetVersion) .pdb
мати таке значення:
$ (OutDir) vc $ (PlatformToolsetVersion) D $ (ProjectName) .pdb
Тепер, а не десь у проміжному каталозі, .pdb-файли записуються у вихідний каталог, куди також записуються .lib-файли, І найголовніше, вони називаються суфіксом D + назва проекту . Це означає, що кожен проект бібліотеки продукує проект .lib та конкретний проект .pdb.
Тепер я можу скопіювати всі мої випуски .lib файли, мої налагоджувальні файли .lib та файли налагодження .pdb в одне місце в моїй системі розробки, а проект, який використовує цю сторонній бібліотеку в режимі налагодження, має pdb потрібні файли в режимі налагодження.