Share via


/MD, /MT, /LD (usar biblioteca em 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[d]
/MT[d]
/LD[d]

Comentários

Opção

Descriçã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 no 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 ao 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 (nomear arquivo EXE) como a nomeação de uma DLL em vez de um arquivo .exe. Por padrão, o nome do programa se torna basename.dll em vez de basename.exe.

Indica /MT, a menos que você especifique /MD explicitamente.

/LDd

Cria uma DLL de depuração. Define _MT e _DEBUG.

Para obter mais informações sobre as bibliotecas CRT e quais bibliotecas são usadas quando você compila com /clr (compilação do Common Language Runtime), consulte Recursos da biblioteca CRT.

Todos os módulos passados para determinada invocação do vinculador devem ter sido compilados com a mesma opção do compilador da biblioteca em tempo de execução (/MD, /MT, /LD).

Para obter mais informações sobre como usar as versões de depuração das bibliotecas em tempo de execução, consulte Referência da biblioteca em tempo de execução do C.

O artigo Q140584 da Base de Dados de Conhecimento também discute como escolher a biblioteca CRT adequada.

Para saber mais sobre DLLs, consulte DLLs no Visual C++.

Para definir esta opção do compilador no ambiente de desenvolvimento do Visual Studio

  1. Abra a caixa de diálogo Páginas de Propriedades do projeto. Para obter detalhes, consulte Como abrir páginas de propriedade do projeto.

  2. Expanda a pasta C/C++.

  3. Selecione a página de propriedades Geração de Código.

  4. Modifique a propriedade de Biblioteca em Tempo de Execução.

Para definir essa opção do compilador via programação

Consulte também

Referência

Opções do compilador

Definindo opções do compilador