Artigo: 154753 - Última revisão: quarta-feira, 19 de Março de 2008 - Revisão: 7.1

Descrição das bibliotecas de C e C++ predefinido que irá ligar um programa com quando criado utilizando 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 | Reduzir tudo

Sumário

Este artigo descreve as bibliotecas predefinido 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 irá ligar um programa com quando criadas utilizando o Visual C++.

Mais Informação

Quando criar uma versão lançamento (ou de depuração) do projecto no Visual C++, uma das bibliotecas de tempo de execução C básicas (.LIB [D] LIBC LIBCMT .LIB [D] e MSVCRT[D].LIB) está ligado por predefinição, dependendo da opção do compilador escolher (single-threaded <ML[d]>, <MT[d]> multithread ou DLL multithread <MD[d]>). Também pode ser ligada uma biblioteca de Standard C++ Library ou uma biblioteca de iostream antigo consoante os cabeçalhos que utilize no código. Por exemplo, considere os seguintes casos:

Caso 1: Exemplo de programa test1.cpp

// test1.cpp
void main()
{
}
				
  • Se criar test1.cpp utilizando /ML (ou / MLd , para uma compilação de depuração) a opção do compilador, o programa irá ligar a LIBC.LIB (ou LIBCD.LIB para compilação de depuração), juntamente com outras bibliotecas.
    Nota /ML e / MLd biblioteca opções de compilador para bibliotecas estáticas single-threaded foram removidas no Visual C++ 2005 e nas versões posteriores do Visual C++.
  • Se criar test1.cpp utilizando /MT (ou / MTd , para uma compilação de depuração) a opção do compilador, o programa irá ligar a LIBCMT.LIB (ou LIBCMTD.LIB para compilação de depuração), juntamente com outras bibliotecas.
  • Se criar test1.cpp utilizando /MD (ou / MDd , para uma compilação de depuração) a opção do compilador, o programa irá ligar a MSVCRT.LIB (ou MSVCRTD.LIB para compilação de depuração), juntamente com outras bibliotecas. Neste caso, o programa irá depender Msvcrt.dll (ou MSVCRTD.DLL para compilação de depuração).

Caso 2: Exemplo de programa test2.cpp

   // test2.cpp
   #include <iostream>
   void main()
   {
   }
				
  • Se criar test2.cpp utilizando /ML (ou / MLd , para uma compilação de depuração) a opção do compilador, o programa irá ligar 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.
    Nota /ML e / MLd biblioteca opções de compilador para bibliotecas estáticas single-threaded foram removidas no Visual C++ 2005 e nas versões posteriores do Visual C++.
  • Se criar test2.cpp utilizando /MT (ou / MTd , para uma compilação de depuração) a opção do compilador, o programa irá ligar 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 criar test2.cpp utilizando o /MD (or /MDd, for a debug build) a opção do compilador, o programa irá ligar 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 o 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 o 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á dependente 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á dependente 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á dependente Msvcrt.dll MSVCP50.DLL (ou MSVCRTD.DLL e MSVCP50D.DLL para compilação de depuração).
    Para o Microsoft 4.2 de Visual C++, 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: Exemplo de programa test3.cpp

Nota Os ficheiros de cabeçalho de sequência com a extensão .h (incluem <useoldio.h>) ter sido preterida no Visual C++ 2002 e foram removidos no Visual C++ 2005 e no Visual C++ 2003. Por conseguinte, o exemplo que se segue não funcionará na versão do Visual C++ posteriores ao Visual C++ 2002.
// test3.cpp
#include <iostream.h>
void main()
{
}
				
  • Se criar test3.cpp utilizando /ML (ou / MLd , para uma compilação de depuração) a opção do compilador, o programa irá ligar 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.
    Nota /ML e / MLd biblioteca opções de compilador para bibliotecas estáticas single-threaded foram removidas no Visual C++ 2005 e nas versões posteriores do Visual C++.
  • Se criar test3.cpp utilizando /MT (ou / MTd , para uma compilação de depuração) a opção do compilador, o programa irá ligar 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 criar test3.cpp utilizando /MD (ou / MDd , para uma compilação de depuração) a opção do compilador, o programa irá ligar com MSVCRT.LIB (ou MSVCRTD.LIB para compilação de depuração) e MSVCIRT.LIB (ou MSVCIRTD.LIB para depuração compilação) em conjunto com outras bibliotecas. Neste caso, o programa irá 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 Standard C++, bibliotecas de iostream antiga ou não será ligado. Opções do compilador ( /ML [d] , [d] /MT , /MD [d] ) determinam qual a versão das bibliotecas de thread único, com vários threads, ou DLL multithread é ligado por predefinição.

Nota -Poderá parecer que cabeçalhos sem a extensão .h estão Standard C++ cabeçalhos e de que cabeçalhos com a extensão .h estão cabeçalhos de tempo de execução C ou cabeçalhos iostream antigo. Isto não é verdade. Como descrito abaixo, os ficheiros <useoldio.h> e <use_ansi.h> determinar as bibliotecas a aplicação irá ligar com.

Na realidade, existem dois ficheiros de cabeçalho, <useoldio.h> e <use_ansi.h>, que contêm #pragmas. Forçar o #pragmas ou a biblioteca de iostream antigo ou a biblioteca Standard C++ ser ligados por predefinição.

O ficheiro de cabeçalho <useoldio.h> contém declarações de # pragma forçar a biblioteca de iostream antigos para serem ligadas no. Todos os cabeçalhos iostream antigo incluem <useoldio.h>. Assim, se incluir qualquer cabeçalho iostream antigo na sua aplicação, a biblioteca iostream antigo será ligada por predefinição. A tabela seguinte lista todos os ficheiros cabeçalho incluem <useoldio.h>.

Cabeçalhos iostream antigo

Reduzir esta tabelaExpandir esta tabela
FSTREAM.HIOMANIP.H
IOS.HIOSTREAM.H
ISTREAM.HOSTREAM.H
STDIOSTR.HSTREAMB.H
STRSTREA.H
Nota <useoldio.h> aplica-se apenas ao Visual C++ .NET 2003 e versões anteriores. Porque a biblioteca iostream antiga foi removida do Visual C++ 2003 e versões posteriores, o cabeçalho <useoldio.h> também foi removido.
O ficheiro de cabeçalho <use_ansi.h> contém instruções # pragma que forçar Standard C++ Library para serem ligadas no. Todos os cabeçalhos de C++ padrão incluem <use_ansi.h>. Por isso, se incluir qualquer cabeçalho de C++ padrão na sua aplicação, a biblioteca Standard C++ será ligada por predefinição. A tabela seguinte lista todos os ficheiros cabeçalho incluem <use_ansi.h>.

Cabeçalhos de C++ padrão

Reduzir esta tabelaExpandir esta tabela
ALGORITMOBITSETCOMPLEXODEQUE
FSTREAMFUNCIONALIOMANIPIOS
IOSFWDIOSTREAMISTREAMITERAÇÃO
LIMITESLISTAREGIÃOMAPA
MEMÓRIANUMÉRICOOSTREAMFILA
DEFINIRSSTREAMPILHASTDEXCEPT
STREAMBUFCADEIASTRSTREAMTYPEINFO
UTILITÁRIOVALARRAYVECTORXIOSBASE
XLOCALEXLOCINFOXLOCMONXLOCNUM
XLOCTIMEXMEMORYXSTRINGXTREE
XUTILITYYMATH.H
Não é possível misturar chamadas para a biblioteca iostream antigo e o novo Standard C++ Library no Visual C++ 4.2.
Reduzir esta tabelaExpandir esta tabela
opção de compilação associado a bibliotecas
/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 CRT dll utilizada

Reduzir esta tabelaExpandir esta tabela
importação de biblioteca associada dll utilizada (Visual C++ 5.0|6.0) dll utilizada (Visual C++ .NET 2002|Visual C++ .NET 2003) DLLs utilizadas (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 de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
154419  (http://support.microsoft.com/kb/154419/ ) Perguntas mais frequentes Standard C++ Library

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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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/ )