Başkalarının yararı için, yaptıklarımı da dahil ettim.
Visual Studio'nun (benim durumumda 2010) LNK4204 uyarılarını göz ardı etmesini sağlayamadığınız için, benim yaklaşımım ona istediğini vermekti: pdb dosyaları. Benim durumumda açık kaynak kitaplıkları kullandığım için, zaten pdb dosyalarını oluşturan koda sahibim.
ANCAK, varsayılan, tüm PDF dosyalarını aynı şekilde adlandırmaktır: benim durumumda vc100.pdb. Her bir .lib için bir .pdb'ye ihtiyacınız olduğundan, bu özellikle yaklaşık 20 statik .lib dosyası oluşturan ImageMagik gibi bir şey kullanıyorsanız bir sorun yaratır. Bir dizinde (uygulamanızın bağlayıcısının kütüphanelerde bağlantı kurmak için başvurduğu) 20 lib dosyasına sahip olamazsınız ve 20 .pdb dosyasının tümüne aynı adı veremezsiniz.
Çözümüm gidip statik kitaplık dosyalarımı yeniden oluşturmak ve VS2010'u .pdb dosyasını PROJE ile ilgili olarak adlandıracak şekilde yapılandırmaktı. Bu şekilde, her bir .lib benzer şekilde adlandırılmış bir .pdb alır ve projenizin kullanması için tüm LIB'leri ve PDB'leri tek bir dizine koyabilirsiniz.
Bu yüzden "Hata Ayıklama" yapılandırması için şunları düzenledim:
Özellikler-> Yapılandırma Özellikleri -> C / C ++ -> Çıktı Dosyaları -> Program Veritabanı Dosya Adı dan
$ (IntDir) vc $ (PlatformToolsetVersion) .Pdb
aşağıdaki değer olmalıdır:
$ (OutDir) vc $ (PlatformToolsetVersion) D $ (ProjeAdı) .Pdb
Artık ara dizinde bir yer yerine .pdb dosyaları, .lib dosyalarının da yazıldığı çıktı dizinine yazılır ve en önemlisi, D + proje adı sonekiyle adlandırılır . Bu, her kütüphane projesinin bir proje .lib ve projeye özel .pdb ürettiği anlamına gelir .
Artık tüm sürüm .lib dosyalarımı, hata ayıklama .lib dosyalarımı ve hata ayıklama .pdb dosyalarını geliştirme sistemimde tek bir yere kopyalayabiliyorum ve hata ayıklama modunda bu 3. taraf kitaplığını kullanan proje pdb'ye sahip hata ayıklama modunda ihtiyaç duyduğu dosyalar.