visual studio運行時庫MT、MTd、MD、MDd 的區別


msdn上面的解釋:

MT:mutithread,多線程庫,編譯器會從運行時庫里面選擇多線程靜態連接庫來解釋程序中的代碼,即連接LIBCMT.lib庫

MTd:mutithread+debug,多線程調試版,連接LIBMITD.lib庫

MD:MT+DLL,多線程動態庫,連接MSVCRT.lib庫,這是個導入庫,對應動態庫為MSVCRT.dll

MDd: MT+DLL+debug,多線程動態調試庫,連接MSVCRTD.lib庫,對應動態庫為MSVCRTD.dll

開發多線程程序時(單線程本文不做討論),需要選擇MT、MTd、MD、MDd其中的一個。

 

對於MT/MTd,由於連接運行時庫是LIBCMT.lib/LIBCMTD.lib,這兩個庫是靜態庫,所以此種方式編譯的程序,移到另一台機器上面也可以正常運行。

但是對於MD/MDd,連接的是動態庫,所以如果另一台機器上沒有MSVCRT.dll/MSVCRTD.dll時,就提示缺少動態庫這樣的錯誤。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM