/MD,-MT,-LD (use Run-Time Library) | Microsoft Docs
/MD, /MT, /LD (Usar biblioteca de tempo de execução)
Indica se um módulo com multithread é uma DLL e especifica versões comerciais ou de depuração da biblioteca em tempo de execução.
/MD Faz com que o aplicativo use a versão específica de multithread e a versão específica de DLL da biblioteca em tempo de execução. Define _MT e _DLL e faz com que o compilador coloque o nome da biblioteca MSVCRT.lib no arquivo .obj.
Os aplicativos criados com esta opção são vinculados a MSVCRT.lib estaticamente. Essa biblioteca fornece uma camada de código que permite que o vinculador resolva referências externas. O código de trabalho real está contido em MSVCRversionnumber.DLL, que deve estar disponível em tempo de execução para aplicativos vinculados a msvcrt. lib.
/MDd Define _DEBUG, _MT e _DLL, e faz com que o aplicativo use a versão específica de multithread de depuração e a versão específica de DLL da biblioteca em tempo de execução. Também faz com que o compilador coloque o nome da biblioteca MSVCRTD.lib no arquivo .obj.
/MT Faz com que o aplicativo use a versão estática de multithread da biblioteca em tempo de execução. Define _MT e faz com que o compilador coloque o nome da biblioteca LIBCMT.lib no arquivo .obj para que o vinculador use LIBCMT.lib para resolver símbolos externos.
/MTd Define _DEBUG e _MT. Essa opção também faz com que o compilador coloque o nome da biblioteca LIBCMTD.lib no arquivo .obj para que o vinculador use LIBCMTD.lib para resolver símbolos externos.
/LD Cria uma DLL.
Passa a opção /dll para o vinculador. O vinculador procura, mas não requer, uma função DllMain. Se você não grava uma função DllMain, o vinculador insere uma função DllMain que retorna TRUE.
Vincula o código de inicialização da DLL.
Cria uma biblioteca da importação (.lib), se um arquivo de exportação (.exp) não é especificado na linha de comando. Você vinculará a biblioteca de importação aos aplicativos que chamam a DLL.
Interpreta /FE (arquivo exe de nome) como nomear uma dll em vez de um arquivo de .exe. Por padrão, o nome do programa se torna basename.dll em vez de basename.exe.
Implica /MT , a menos que você especifique explicitamente /MD.
/LDd Cria uma DLL de depuração. Define _MT e _DEBUG.
Para obter mais informações sobre bibliotecas de tempo de execução do C e quais bibliotecas são usadas quando você compila com /CLR (compilação em tempo de execução de linguagem comum), consulte recursos da biblioteca do CRT.
Todos os módulos passados para uma determinada invocação do vinculador devem ter sido compilados com a mesma opção de compilador de biblioteca de tempo de execução (/MD, /MT, /LD).
Para obter mais informações sobre como usar as versões de depuração das bibliotecas de tempo de execução, consulte referência da biblioteca do C Run-Time.