คำถามติดแท็ก msvcrt

5
การแก้ไข LNK4098: defaultlib 'MSVCRT' ขัดแย้งกับ
คำเตือนนี้: LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library เป็นคำเตือนทั่วไปใน Visual Studio ฉันต้องการที่จะเข้าใจเหตุผลที่แน่นอนสำหรับมันและวิธีการที่ถูกต้อง (ถ้าทั้งหมด) เพื่อจัดการกับมัน /MDdนี้เกิดขึ้นในการแก้ปัญหาการสร้างรวบรวมกับ โครงการเชื่อมโยงกับสิ่งที่ชอบหน้าต่างVersion.dllและที่ตัวเองเชื่อมโยงกับpdh.dll MSVCRT.dllเห็นได้ชัดว่าฉันไม่มีเวอร์ชันแก้ไขข้อบกพร่องเหล่านี้และไม่สามารถรวบรวมได้ ดังนั้นฉันเพิ่ม/NODEFAULTLIB:MSVCRTเข้าไปในบรรทัดคำสั่งของ linker และมันก็ลบคำเตือนออก แต่สิ่งนี้ทำอะไรได้จริง? และทำไมมันจำเป็น?

7
ฉันควรคอมไพล์ด้วย / MD หรือ / MT?
ใน Visual Studio มีแฟล็กคอมไพล์ / MD และ / MT ซึ่งให้คุณเลือกประเภทของไลบรารีรันไทม์ C ที่คุณต้องการ ฉันเข้าใจความแตกต่างในการใช้งาน แต่ฉันยังไม่แน่ใจว่าจะใช้อันไหนดี ข้อดี / ข้อเสียคืออะไร? ข้อดีอย่างหนึ่งของ / MD ที่ฉันเคยได้ยินมาคือสิ่งนี้ช่วยให้ผู้อื่นอัปเดตรันไทม์ได้ (เช่นอาจจะแก้ไขปัญหาด้านความปลอดภัย) และแอปของฉันจะได้รับประโยชน์จากการอัปเดตนี้ แม้ว่าสำหรับฉันแล้วสิ่งนี้ดูเหมือนจะไม่ใช่ฟีเจอร์: ฉันไม่ต้องการให้คนอื่นเปลี่ยนรันไทม์โดยไม่อนุญาตให้ฉันทดสอบกับเวอร์ชันใหม่! บางสิ่งที่ฉันอยากรู้เกี่ยวกับ: สิ่งนี้จะส่งผลต่อเวลาในการสร้างอย่างไร (น่าจะ / MT ช้ากว่านิดหน่อย?) ความหมายอื่น ๆ คืออะไร? คนส่วนใหญ่ใช้อันไหน?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.