/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
Abra a caixa de diálogo Páginas de Propriedades do projeto. Para obter detalhes, consulte Como abrir páginas de propriedade do projeto.
Expanda a pasta C/C++.
Selecione a página de propriedades Geração de Código.
Modifique a propriedade de Biblioteca em Tempo de Execução.
Para definir essa opção do compilador via programação
- Consulte RuntimeLibrary.