分享方式:


/MD、/MT、/LD (使用執行階段程式庫)

指出多執行緒模組是否為 DLL,並指定執行階段程式庫的正式版本或偵錯版本。

語法

/MD[d]
/MT[d]
/LD[d]

備註

選項 描述
/MD 讓應用程式使用多執行緒特定與 DLL 特定版本的執行階段程式庫。 定義 _MT_DLL,並讓編譯器將程式庫名稱 MSVCRT.lib 放入 .obj 檔。

使用這個選項編譯的應用程式,都以靜態方式連結至 MSVCRT.lib。 此程式庫提供可讓連結器解析外部參考的程式碼層。 實際的工作程式代碼包含在 MSVCRversionnumber 中.DLL,必須在運行時間提供給與 MSVCRT.lib 連結的應用程式。
/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 (Name EXE 檔案) 解譯為命名 DLL,而不是.exe檔案。 根據預設,程式名稱會變成 basename.dll 而不是basename.exe。

隱含 /MT除非您明確指定 /MD
/LDd 建立偵錯 DLL。 定義 _MT_DEBUG

如需 C 運行時間連結庫的詳細資訊,以及使用 /clr 編譯時所使用的連結庫,請參閱 CRT 連結庫功能。

傳遞至指定連結器調用的所有模組都必須使用相同的運行時間連結庫編譯程式選項 (/MD/MT/LD) 編譯。

如需如何使用運行時間連結庫偵錯版本的詳細資訊,請參閱 C 運行時間連結庫參考

如需 DLL 的詳細資訊,請參閱 在 Visual Studio 中建立 C/C++ DLL。

在 Visual Studio 開發環境中設定這個編譯器選項

  1. 開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性

  2. 選取 [組態屬性>C/C++>Code 產生] 屬性頁。

  3. 修改運行時間連結 屬性。

若要以程式方式設定這個編譯器選項

另請參閱

MSVC 編譯器選項
MSVC 編譯器命令列語法