程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> MD(d)、MT(d)編譯選項的區別,mdmt

MD(d)、MT(d)編譯選項的區別,mdmt

編輯:C++入門知識

MD(d)、MT(d)編譯選項的區別,mdmt


1、編譯選項的位置

以VS2005為例,這樣子打開:

1)         打開項目的Property Pages對話框

2)         點擊左側C/C++節

3)         點擊Code Generation節

4)         右側第六行Runtime Library項目

2、各個設置選項代表的含義

編譯選項

包含

靜態鏈接的lib

說明

/MD

_MT、_DLL

MSVCRT.lib

多線程、Release、DLL版本的運行時庫

/MDd

_DEBUG、_MT、_DLL

MSVCRTD.lib

多線程、Debug、DLL版本的運行時庫

/MT

_MT

LIBCMT.lib

多線程、Release版本的運行時庫

/MTd

_DEBUG、_MT

LIBCMTD.lib

多線程、Debug版本的運行時庫

簡單的說:

(1)/MD,表示運行時庫由操作系統提供一個DLL,程序裡不集成。

(2)/MT,表示運行時庫由程序集成。

二、/MD、/MT的選擇

      1、為什麼選擇/MD,不選/MT?

         (1)程序就不需要靜態鏈接運行時庫,可以減小軟件的大小;

         (2)所有的模塊都采用/MD,使用的是同一個堆,不存在A堆申請,B堆釋放的問題;

   (3)用戶機器可能缺少我們編譯時使用的動態運行時庫。(補充:如果我們軟件有多個DLL,采用/MT體積增加太多,則可以考慮/MD + 自帶系統運行時庫)

      2、為什麼選擇/MT,不選擇/MD?

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved