เพื่อประโยชน์ของผู้อื่นแม้ว่าฉันจะรวมสิ่งที่ฉันทำ
เนื่องจากคุณไม่สามารถรับ Visual Studio (2010 ในกรณีของฉัน) เพื่อเพิกเฉยต่อคำเตือน LNK4204 แนวทางของฉันคือให้สิ่งที่ต้องการ: ไฟล์ pdb เนื่องจากฉันใช้ไลบรารีโอเพนซอร์สในกรณีของฉันฉันมีรหัสที่สร้างไฟล์ pdb อยู่แล้ว
แต่ค่าเริ่มต้นคือตั้งชื่อไฟล์ PDF ทั้งหมดเหมือนกัน: vc100.pdb ในกรณีของฉัน เนื่องจากคุณต้องการ. pdb สำหรับ. lib แต่ละไฟล์สิ่งนี้จะสร้างปัญหาโดยเฉพาะอย่างยิ่งถ้าคุณใช้บางอย่างเช่น ImageMagik ซึ่งสร้างไฟล์. lib แบบคงที่ประมาณ 20 ไฟล์ คุณไม่สามารถมีไฟล์ lib 20 ไฟล์ในไดเร็กทอรีเดียว (ซึ่งตัวเชื่อมโยงของแอปพลิเคชันของคุณอ้างถึงลิงก์ในไลบรารี) และมีไฟล์. pdb ทั้งหมด 20 ไฟล์ที่เรียกว่าสิ่งเดียวกัน
วิธีแก้ปัญหาของฉันคือไปและสร้างไฟล์ไลบรารีแบบคงที่ของฉันใหม่และกำหนดค่า VS2010 เพื่อตั้งชื่อไฟล์. ด้วยวิธีนี้. lib แต่ละตัวจะได้รับชื่อ. pdb ที่คล้ายกันและคุณสามารถใส่ LIB และ PDB ทั้งหมดในไดเร็กทอรีเดียวเพื่อให้โปรเจ็กต์ของคุณใช้
ดังนั้นสำหรับการกำหนดค่า "ดีบัก" ฉันจึงแก้ไข:
คุณสมบัติ -> คุณสมบัติการกำหนดค่า -> C / C ++ -> ไฟล์เอาต์พุต -> ชื่อไฟล์ฐานข้อมูลโปรแกรมจาก
$ (IntDir) VC $ (PlatformToolsetVersion) .pdb
เป็นค่าต่อไปนี้:
$ (OutDir) VC $ (PlatformToolsetVersion) D $ (ProjectName) .pdb
ตอนนี้มากกว่าที่ใดที่หนึ่งในไดเรกทอรีกลางไฟล์ .pdb ถูกเขียนไปยังไดเรกทอรีออกที่ไฟล์ .LIB ยังมีการเขียนและที่สำคัญที่สุดคือพวกเขาจะถูกตั้งชื่อมีคำต่อท้ายของ D + A ชื่อโครงการ ซึ่งหมายความว่าโปรเจ็กต์ไลบรารีแต่ละโปรเจ็กต์จะสร้างโปรเจ็กต์. lib และโปรเจ็กต์. pdb
ตอนนี้ฉันสามารถคัดลอกไฟล์. lib ทั้งหมดของฉันไฟล์ debug .lib และไฟล์ debug .pdb ลงในที่เดียวในระบบการพัฒนาของฉันและโปรเจ็กต์ที่ใช้ไลบรารีของบุคคลที่สามนั้นในโหมดดีบักมี pdb ไฟล์ที่ต้องการในโหมดดีบัก