多線程DLL(/MD/MT.....)(轉)

選項 說明

/MD

使應用程序使用運行時庫的多線程並特定於 DLL 的版本。定義 _MT 和 _DLL,並使編譯器將庫名 MSVCRT.lib 放入 .obj 文件中。

用此選項編譯的應用程序靜態鏈接到 MSVCRT.lib。該庫提供允許鏈接器解析外部引用的代碼層。實際工作代碼包含在 MSVCR80.DLL 中,該庫必須在運行時對於與 MSVCRT.lib 鏈接的應用程序可用。

當在定義了 _STATIC_CPPLIB (/D_STATIC_CPPLIB) 的情況下使用 /MD 時,它將導致應用程序與靜態多線程標準 C++ 庫 (libcpmt.lib) 而非動態版本 (msvcprt.lib) 鏈接,同時仍通過 msvcrt.lib 動態鏈接到主 CRT。

/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 文件;默認程序名成爲 basename.dll 而不是basename.exe。

除非顯式指定 /MD,否則將暗指 /MT

/LDd

創建調試 DLL。定義 _MT 和 _DEBUG

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章