2013-06-11 16 views
13

MS Visual Studio 10'da numaralı .PDB her zaman statik kitaplığı (.LIB) oluştururken, her zamanolarak adlandırılır.
Ben "PublishedLibraries" bir dizine birkaç farklı kütüphaneler (ve onların hata ayıklama simgeleri) kopyalamak çalışıyorum çünküVisual Studio 10'daki Kütüphanelerle PDB dosyaları 10

Bu benim için bir sorun (hata ayıklama bilgisi [MyProjectName].pdb olduğu, bir .DLL bina aksine), ama tüm vc100.pdb isimleri açıkça çarpışıyor.

ben onun .LIB maç için her .PDB isimlerini değiştirebilir eminim, ama benim için büyük soru neden Visual Studio vc100.pdbprojectA.pdb daha iyi bir isim olduğunu sanıyor mi ??
Tüm isimler çakışıyorsa, Debug Bilgisi ile birden çok kitaplıktan nasıl çalışmayı amaçlıyoruz?

+1

err, doğrudan bir .lib hata ayıklama nasıl? IMO bir DLL veya exe içine inşa ederseniz, bu hata ayıklamak için gereken her şeye sahip olacak. –

+1

Bir yürütülebilirliğe çeşitli kütüphaneler (ve başka bir kod) oluşturursam, bu yürütülebilir dosya çeşitli 'vc100.pdb' dosyalarından bilgi gerektirmiyor mu? Hepsi aynı çatışan adı varsa hepsini nasıl okuyor? – abelenky

+1

"Program veritabanı" dır, bağımlılık bilgisi içerir. Oluşturulduğu yerde bırakın. İhtiyacınız olan PDB, statik kütüphaneyi bir yürütülebilir dosyaya bağlayana kadar oluşturulmaz. –

cevap

19

/Z7 yerine (/ ZI veya/Zi yerine) [UI C/C++ -> Genel -> Hata Ayıklama Bilgi Biçiminde] kullanırsanız, hata ayıklama bilgileri lib dosyasının kendisinde ayrı bir dosya yerine gömülür. pdb, yani aynı isim hakkında endişelenmenize gerek yok demektir.

Son yürütülebilir dosyanızı (.exe veya .dll) oluşturduğunuzda, tüm küçük gömülü pdbs'lerden birleştirilmiş bir pdb alırsınız.

fazla bilgi

için this question bkz Onun oluşturma işlemi sırasında hata ayıklama bilgileri kaybetmezsiniz gibi hep, benim takımımda bu sorunu idare etmen. Lib'leri bir şekilde şişirir [ancak lib ve pdb'ye sahip olmaktan daha fazla toplamı yoktur], ancak muhtemelen lib'leri göndermediğinden, bunun için fazla endişelenmemelisiniz.