ID do artigo: 154753 - Última revisão: quarta-feira, 19 de março de 2008 - Revisão: 7.1

Descrição das bibliotecas padrão C e C++ que um programa irá vincular com quando criado usando o Visual C++

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sumário

Este artigo descreve as bibliotecas padrão LIBC .lib [D], .lib LIBCMT [D], .lib LIBCI [D], LIBCIMT .lib [D], .lib LIBCP [D], LIBCPMT .lib [D], MSVCRT [D] .lib, MSVCIRT .lib [D] e MSVCPRT .lib [D] que um programa irá vincular com quando criado usando o Visual C++.

Mais Informações

Quando você criar uma versão versão (ou depuração) do seu projeto no Visual C++, uma das bibliotecas C Runtime básicas (.lib [D] LIBC, .lib [D] LIBCMT e MSVCRT[D].LIB) é vinculados por padrão, dependendo da opção de compilador escolhido (<ML[d]> single-threaded, <MT[d]> multithread ou DLL multithread <MD[d]>). Uma biblioteca da biblioteca C++ padrão ou um da Biblioteca iostream antigo também pode estar vinculado dependendo cabeçalhos que usar em seu código. Por exemplo, considere os seguintes casos:

Caso 1: Test1.cpp de programa de exemplo

// test1.cpp
void main()
{
}
				
  • Se você criar test1.cpp usando /ML (ou / MLd , para uma compilação de depuração) a opção de compilador, seu programa vinculará com LIBC.LIB (ou LIBCD.LIB para compilação de depuração), juntamente com outras bibliotecas.
    Observação /ML e / MLd biblioteca opções de compilador para bibliotecas estáticas single-threaded foram removidas do Visual C++ 2005 e em versões posteriores do Visual C++.
  • Se você criar test1.cpp usando /MT (ou / MTd , para uma compilação de depuração) a opção de compilador, seu programa vinculará com LIBCMT.LIB (ou LIBCMTD.LIB para compilação de depuração), juntamente com outras bibliotecas.
  • Se você criar test1.cpp usando /md (ou / MDd , para uma compilação de depuração) a opção de compilador, seu programa vinculará com MSVCRT.LIB (ou MSVCRTD.LIB para compilação de depuração), juntamente com outras bibliotecas. Nesse caso, o programa será ser dependente de Msvcrt.dll (ou MSVCRTD.DLL para compilação de depuração).

Caso 2: Exemplo programa test2.cpp

   // test2.cpp
   #include <iostream>
   void main()
   {
   }
				
  • Se você criar test2.cpp usando /ML (ou / MLd , para uma compilação de depuração) opção do compilador, o programa irá vincular com LIBC.LIB (ou LIBCD.LIB para compilação de depuração) e LIBCP.LIB (ou LIBCPD.LIB para compilação de depuração), juntamente com outras bibliotecas.
    Observação /ML e / MLd biblioteca opções de compilador para bibliotecas estáticas single-threaded foram removidas do Visual C++ 2005 e em versões posteriores do Visual C++.
  • Se você criar test2.cpp usando /MT (ou / MTd , para uma compilação de depuração) opção do compilador, o programa irá vincular com LIBCMT.LIB (ou LIBCMTD.LIB para compilação de depuração) e LIBCPMT.LIB (ou LIBCPMTD.LIB para compilação de depuração), juntamente com outras bibliotecas.
  • Se você criar test2.cpp usando o /md (or /MDd, for a debug build) opção do compilador, o programa irá vincular com MSVCRT.LIB (ou MSVCRTD.LIB para compilação de depuração) e MSVCPRT.LIB (ou MSVCPRTD.LIB para compilação de depuração), juntamente com outras bibliotecas.
    Para Microsoft Visual C++ 2008, o programa será dependente MSVCR90.DLL MSVCP90.DLL (ou MSVCR90D.DLL e MSVCP90D.DLL para compilação de depuração).
    Para Microsoft Visual C++ 2005, o programa será dependente MSVCR80.DLL MSVCP80.DLL (ou MSVCR80D.DLL e MSVCP80D.DLL para compilação de depuração).
    Para o Microsoft Visual C++ 2003, o programa será ser dependente de MSVCR71.DLL MSVCP71.DLL (ou MSVCR71D.DLL e MSVCP71D.DLL para compilação de depuração).
    Para o Microsoft Visual C++ 2002, o programa será ser dependente de MSVCR70.DLL MSVCP70.DLL (ou MSVCR70D.DLL e MSVCP70D.DLL para compilação de depuração).
    Para Microsoft Visual C++ 6.0, o programa será dependente Msvcrt.dll MSVCP60.DLL (ou MSVCRTD.DLL e MSVCP60D.DLL para compilação de depuração).
    Para o Microsoft Visual C++ 5.0, o programa será ser dependente de Msvcrt.dll MSVCP50.DLL (ou MSVCRTD.DLL e MSVCP50D.DLL para compilação de depuração).
    Para Microsoft Visual C++ 4.2, o programa será dependente Msvcrt.dll (ou MSVCRTD.DLL para compilação de depuração) e MSVCPRT.LIB (ou MSVCPRTD.LIB para compilação de depuração).

Caso 3: Atualizar test3.cpp de programa

Observação Os arquivos de cabeçalho de fluxo que possuem a extensão. h (incluir <useoldio.h>) tiver sido substituído no Visual C++ 2002 e ter sido removida no Visual C++ 2005 e no Visual C++ 2003. Portanto, o exemplo a seguir não funcionará em uma versão posterior do Visual C++ 2002 do Visual C++.
// test3.cpp
#include <iostream.h>
void main()
{
}
				
  • Se você criar test3.cpp usando /ML (ou / MLd , para uma compilação de depuração) opção do compilador, o programa irá vincular com LIBC.LIB (ou LIBCD.LIB para compilação de depuração) e LIBCI.LIB (ou LIBCID.LIB para compilação de depuração), juntamente com outras bibliotecas.
    Observação /ML e / MLd biblioteca opções de compilador para bibliotecas estáticas single-threaded foram removidas do Visual C++ 2005 e em versões posteriores do Visual C++.
  • Se você criar test3.cpp usando /MT (ou / MTd , para uma compilação de depuração) opção do compilador, o programa irá vincular com LIBCMT.LIB (ou LIBCMTD.LIB para compilação de depuração) e LIBCIMT.LIB (ou LIBCIMTD.LIB para compilação de depuração), juntamente com outras bibliotecas.
  • Se você criar test3.cpp usando /md (ou / MDd , para uma compilação de depuração) opção do compilador, o programa irá vincular com MSVCRT.LIB (ou MSVCRTD.LIB para compilação de depuração) e MSVCIRT.LIB (ou MSVCIRTD.LIB para compilação de depuração) juntamente com outras bibliotecas. Nesse caso, o programa dependerá Msvcrt.dll (ou MSVCRTD.DLL para compilação de depuração) e MSVCIRT.DLL (ou MSVCIRTD.DLL para compilação de depuração).
Cabeçalhos de determinam se as bibliotecas C++ padrão, bibliotecas iostream antigo ou nenhuma será vinculada. Opções do compilador ( /ML [d] , /MT [d] , [d] /MD ) determinam qual versão das bibliotecas de multithread, single-threaded ou DLL multithread é a ser vinculado por padrão.

Observação Pode parecer que cabeçalhos sem a extensão. h são cabeçalhos de C++ padrão e que cabeçalhos com a extensão. h estão C Runtime cabeçalhos ou cabeçalhos iostream antigo. Isso não é verdade. Conforme explicado abaixo, os arquivos <useoldio.h> <use_ansi.h> determinar as bibliotecas de seu aplicativo irá vincular com e.

Na verdade, existem dois arquivos de cabeçalho, <useoldio.h> e <use_ansi.h>, que contêm #pragmas. O #pragmas forçar tanto a Biblioteca iostream antiga como a biblioteca C++ padrão a ser vinculado por padrão no.

O arquivo de cabeçalho <useoldio.h> contém instruções # pragma, que força a Biblioteca iostream antigo para ser vinculado em. Todos os cabeçalhos iostream antigo incluem <useoldio.h>. Portanto, se você incluir qualquer cabeçalho iostream antigo em seu aplicativo, a Biblioteca iostream antigo será vinculada por padrão. A tabela a seguir lista todos os arquivos cabeçalho que incluem <useoldio.h>.

Cabeçalhos de iostream antigo

Recolher esta tabelaExpandir esta tabela
FSTREAM.HIOMANIP.H
IOS.HIOSTREAM.H
ISTREAM.HOSTREAM.H
STDIOSTR.HSTREAMB.H
STRSTREA.H
Observação <useoldio.h> se aplica somente ao Visual C++ .NET 2003 e versões anteriores. Porque a Biblioteca iostream antigo foi removida do Visual C++ 2003 e versões posteriores, o cabeçalho <useoldio.h> também foi removido.
O arquivo de cabeçalho <use_ansi.h> contém instruções # pragma que forçar a biblioteca C++ padrão a ser vinculado em. Todos os cabeçalhos de C++ padrão incluem <use_ansi.h>. Portanto, se você incluir qualquer cabeçalho C++ padrão em seu aplicativo, a biblioteca C++ padrão será vinculada por padrão. A tabela a seguir lista todos os arquivos cabeçalho que incluem <use_ansi.h>.

Cabeçalhos de C++ padrão

Recolher esta tabelaExpandir esta tabela
ALGORITMOBITSETCOMPLEXODEQUE
FSTREAMFUNCIONALIOMANIPIOS
IOSFWDIOSTREAMISTREAMITERADOR
LIMITESLISTALOCALIDADEMAPA
MEMÓRIANUMÉRICOOSTREAMFILA
CONJUNTOSSTREAMPILHASTDEXCEPT
STREAMBUFSEQÜÊNCIA DE CARACTERESSTRSTREAMTYPEINFO
UTILITÁRIOVALARRAYVETORXIOSBASE
XLOCALEXLOCINFOXLOCMONXLOCNUM
XLOCTIMEXMEMORYXSTRINGXTREE
XUTILITYYMATH.H
Você não pode misturar chamadas para a Biblioteca iostream antiga e nova biblioteca C++ padrão no Visual C++ 4.2.
Recolher esta tabelaExpandir esta tabela
opção de compilação bibliotecas vinculadas com
/ML (VC ++ .NET 2003 e anteriores)LIBC.LIB, LIBCP.LIB
/ MLd (VC ++ .NET 2003 e anteriores)LIBCD.LIB, LIBCPD.LIB
/MTLIBCMT.LIB, LIBCPMT.LIB
/ MTdLIBCMTD.LIB, LIBCPMTD.LIB
/MDMSVCRT.LIB, MSVCPRT.LIB
/ MDdMSVCRTD.LIB, MSVCPRTD.LIB

Tabela de resumo para DLLs CRT usado

Recolher esta tabelaExpandir esta tabela
biblioteca de importação vinculadas com DLLs usado (5.0|6.0 Visual C++) DLLs usada (Visual C++ .NET 2002|Visual C++ .NET 2003) DLLs usadas (Visual C++ 2005|Visual C++ 2008
MSVCRT.LIB MSVCRT.DLL MSVCR7 (0|1) .dll MSVCR (80|90) .dll
MSVCRTD.LIB MSVCRTD.DLL MSVCR7 (0|1) D.DLL MSVCR (80|90) D.DLL
MSVCPRT.LIB 0.DLL MSVCP (5|6) MSVCP7 (0|1) .dll MSVCP (80|90) .dll
MSVCPRTD.LIB 0D.DLL MSVCP (5|6) MSVCP7 (0|1) D.DLL MSVCP (80|90) D.DLL
MSVCIRT.LIB MSVCIRT.DLL
MSVCIRTD.LIB MSVCIRTD.DLL

Referências

Bibliotecas de tempo de execução c
http://msdn.microsoft.com/en-us/library/abx4dbyh.aspx (http://msdn.microsoft.com/en-us/library/abx4dbyh.aspx) Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
154419  (http://support.microsoft.com/kb/154419/ ) Perguntas freqüentes sobre a biblioteca C++ padrão

A informação contida neste artigo aplica-se a:
  • Microsoft Visual C++ 2008 Express Edition
  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition
  • Microsoft Visual C++ .NET 2002 Standard Edition
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 4.2 Professional Edition
  • Microsoft Visual C++ 4.2 Enterprise Edition
Palavras-chave: 
kbmt kbarttypeinf kbcompiler kbinfo kblangcpp KB154753 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 154753  (http://support.microsoft.com/kb/154753/en-us/ )