運行時庫介紹

/MD、/MT、/LD(使用運行時庫)編程

Visual Studio 2008 其餘版本 1(共 1)對本文的評價是有幫助 - 評價此主題
更新:2007 年 11 月
容許您指示多線程模塊是不是 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。
在 Visual Studio 開發環境中設置此編譯器選項
打開項目的「屬性頁」對話框。有關詳細信息,請參見如何:打開項目屬性頁。
單擊「C/C++」文件夾。
單擊「代碼生成」屬性頁。
修改「運行時庫」屬性。
以編程方式設置此編譯器選項
請參見 RuntimeLibrary。函數

相關文章
相關標籤/搜索