Untuk kepentingan orang lain, saya pikir saya akan memasukkan apa yang saya lakukan.
Karena Anda tidak bisa mendapatkan Visual Studio (2010 dalam kasus saya) untuk mengabaikan peringatan LNK4204, pendekatan saya adalah memberikan apa yang diinginkannya: file pdb. Karena saya menggunakan pustaka sumber terbuka dalam kasus saya, saya sudah memiliki kode untuk membangun file pdb.
TAPI, defaultnya adalah menamai semua file PDF dengan hal yang sama: vc100.pdb dalam kasus saya. Karena Anda memerlukan .pdb untuk setiap .lib, ini menimbulkan masalah, terutama jika Anda menggunakan sesuatu seperti ImageMagik, yang membuat sekitar 20 file .lib statis. Anda tidak dapat memiliki 20 file lib dalam satu direktori (yang direferensikan oleh linker aplikasi Anda untuk ditautkan di perpustakaan) dan memiliki semua 20 file .pdb yang disebut sama.
Solusi saya adalah pergi dan membangun kembali file perpustakaan statis saya, dan mengkonfigurasi VS2010 untuk memberi nama file .pdb sehubungan dengan PROYEK tersebut. Dengan cara ini, setiap .lib mendapatkan nama .pdb yang serupa, dan Anda dapat meletakkan semua LIB dan PDB dalam satu direktori untuk digunakan oleh proyek Anda.
Jadi untuk konfigurasi "Debug", saya mengedit:
Properti-> Properti Konfigurasi -> C / C ++ -> File Output -> Nama File Database Program dari
$ (IntDir) vc $ (PlatformToolsetVersion) .pdb
menjadi nilai berikut:
$ (OutDir) vc $ (PlatformToolsetVersion) D $ (ProjectName) .pdb
Sekarang daripada di suatu tempat di direktori perantara, file .pdb ditulis ke direktori output, di mana file .lib juga sedang ditulis, DAN yang terpenting, mereka diberi nama dengan akhiran nama proyek D + . Ini berarti setiap proyek perpustakaan menghasilkan proyek .lib dan .pdb khusus proyek.
Saya sekarang dapat menyalin semua file rilis .lib saya, file debug .lib saya dan file debug .pdb ke satu tempat di sistem pengembangan saya, dan proyek yang menggunakan pustaka pihak ketiga dalam mode debug, memiliki pdb file yang dibutuhkan dalam mode debug.