MD MT LD(使用執行時庫)

2021-05-21 12:27:13 字數 2089 閱讀 6319

允許您指示多執行緒模組是否是 dll,並可以選擇執行時庫的零售版本或除錯版本。

/md[d]

/mt[d]

/ld[d]

選項說明

/md

使應用程式使用執行時庫的多執行緒並特定於 dll 的版本。定義_mt_dll,並使編譯器將庫名 msvcrt.lib 放入 .obj 檔案中。

用此選項編譯的應用程式靜態鏈結到 msvcrt.lib。該庫提供允許鏈結器解析外部引用的**層。實際工作**包含在 msvcr90.dll, 中,該庫必須在執行時對於與 msvcrt.lib 鏈結的應用程式可用。

/md_static_cpplib預處理器定義 (/d_static_cpplib) 一起使用時,您的應用程式將與靜態多執行緒標準 c++ 庫 (libcpmt.lib) 而非動態版本 (msvcprt.lib) 鏈結,但仍通過 msvcrt.lib 動態鏈結到主 crt。

請注意,不支援_static_cpplib預處理器定義和/clr/clr:pure編譯器選項的組合。有關/clr選項的限制的更多資訊,請參見 /clr 限制。

/mdd

定義_debug_mt_dll,並使應用程式使用執行時庫的除錯多執行緒並特定於 dll 的版本。它還使編譯器將庫名 msvcrtd.lib 放入 .obj 檔案中。

/mt

使應用程式使用執行時庫的多執行緒靜態版本。定義_mt並使編譯器將庫名 libcmt.lib 放入 .obj 檔案中,以便鏈結器使用 libcmt.lib 解析外部符號。

/mtd

定義_debug_mt。此選項還使編譯器將庫名 libcmtd.lib 放入 .obj 檔案中,以便鏈結器使用 libcmtd.lib 解析外部符號。

/ld

建立 dll。

將 /dll 選項傳遞到鏈結器。鏈結器查詢dllmain函式,但並不需要該函式。如果沒有編寫dllmain函式,鏈結器將插入返回 true 的dllmain函式。

鏈結 dll 啟動**。

如果命令列上未指定匯出 (.exp) 檔案,則建立導入庫 (.lib);將導入庫鏈結到呼叫您的 dll 的應用程式。

將 /fe(命名 exe 檔案) 解釋為命名 dll 而不是 .exe 檔案;預設程式名成為基名稱.dll 而不是基名稱.exe。

除非顯式指定/md,否則將暗指/mt

/ldd

建立除錯 dll。定義_mt_debug

有關 c 執行時庫以及使用 /clr(公共語言執行庫編譯) 進行編譯時要使用哪些庫的更多資訊,請參見 c run-time libraries。

傳遞給鏈結器的給定呼叫的所有模組都必須使用相同的執行時庫編譯器選項(/md/mt/ld)進行編譯。

有關使用執行時庫的除錯版本的更多資訊,請參見 run-time library reference。

知識庫文章 q140584 也討論如何選擇適當的 c 執行時庫。

有關 dll 的進一步討論,請參見 dll。

開啟專案的「屬性頁」對話方塊。有關詳細資訊,請參見如何:開啟專案屬性頁。

單擊「c/c++」資料夾。

單擊「**生成」屬性頁。

修改「執行時庫」屬性。

VC執行時庫

vc專案屬性 配置屬性 c c 生成 執行時庫 可以採用的方式有 多執行緒 mt 多執行緒除錯 mtd 多執行緒dll md 多執行緒除錯dll mdd 單執行緒 ml 單執行緒除錯 mld reusable library switch library macro s defined single...

C執行時庫

1.概論 執行時庫是 程式在執行時所需要的庫檔案,通常執行時庫是以 lib或 dll形式提供的。c執行時庫誕生於 20世紀 70年代,當時的程式世界還很單純,應用程式都是單執行緒的,多工或多執行緒機制在此時還屬於新觀念。所以這個 j時期的 c執行時庫都是單執行緒的。隨著 作業系統 多執行緒技術的發展...

C執行時庫

visual studio文件的新主頁是docs.microsoft.com上的visual studio 2017文件。可以在crt library features中找到該主題的最新版本。本主題討論構成c執行時庫的各種.lib檔案及其關聯的編譯器選項和預處理程式指令。c執行時庫 crt c執行時...