Artigo: 126717 - Última revisão: terça-feira, 5 de Julho de 2005 - Revisão: 1.1 PROBLEMA: Erro C1853 gerado por mistura C e C++ ficheiros
Nesta páginaSintomasQuando cria projectos de Visual C++ que incluem ficheiros de C e C++ e que utilizam cabeçalhos de pré-compilados, poderá receber a seguinte mensagem de erro: <filename>erro fatal C1853: '<nomedoficheiro>' não é um ficheiro de cabeçalho pré-compilada criados com este compilador CausaO compilador tenta utilizar um cabeçalho de pré-compilado gerado por um compilador C++ num ficheiro de origem C. Isto pode acontecer quando "Utilizar por ficheiro de cabeçalhos pré-compilada" é utilizado com C e C++ código de origem de um projecto. Não é válido para utilizar um compilador C++ criado cabeçalho pré-compilado com um ficheiro de origem que está a ser compilada pelo compilador C. Nem é válido para utilizar um compilador C-criada cabeçalho pré-compilado com um ficheiro de origem que está a ser compilada pelo compilador C++. A ajuda de mensagem de erro do Visual C++ versão 2.x para C1853 pode ser enganadora. Implica que o problema ocorre apenas quando misturar ficheiros .PCH gerados com compiladores 16-bit e 32 bits. Frequentemente, no entanto, isto pode ocorrer quando criar um projecto depois de adicionar um ficheiro de origem C a um projecto C++ puro, que utiliza o "por ficheiro utilização de cabeçalhos Precompiled." (A ajuda online do Visual C++ versão 4.0 incorpora correctamente estas informações por indicando esse erro fatal C1853 "pode ser causado por utilizando um ficheiro C++ pré-compilado com código C.") ResoluçãoEste problema pode ser resolvido de várias formas dependendo da situação: ResoluçãoPara os projectos com um ficheiro de origem C único e múltiplos C++ origem de ficheiros (ou vice-versa), utilize os seguintes passos para desactivar a pré-compilados cabeçalhos para o ficheiro de origem único:
Resolução IIPara os projectos com C e C++ vários ficheiros de origem, utilize os seguintes passos para desactivar a pré-compilados cabeçalhos para um conjunto de procedimento de ficheiros de origem:com o Visual C++ versão 2.x :
Com o Visual C++ versão 4.0 , os grupos não são suportados. Para desactivar a utilização de cabeçalhos de pré-compilados para um grupo de ficheiros de origem, siga os passos de resolução que, mas no passo 2 premir a tecla CRTL ao seleccionar cada ficheiro. Resolução IIIPara os projectos não requer pré-compilados cabeçalhos, siga os passos de resolução que, mas no passo 2 seleccionar todos os alvos da árvore de projecto no painel da esquerda.Resolução IV (VC 4.x e 5.0)
Ponto Da SituaçãoEste comportamento ocorre por predefinição. Mais InformaçãoVisual C++ versão 2.0 permite apenas um ficheiro de cabeçalho pré-compilada por destino num projecto. Este ficheiro é denominado PROJNAME.PCH por predefinição em que PROJNAME é o nome do projecto. Isto pode ser alterado no controlo de edição Project opções das definições de destino utilizando a opção /fp (por exemplo, "/fp MYNAME.PCH"). Este ficheiro de cabeçalho pré-compilada (.PCH) pode ser gerado utilizando o automático ou por ficheiro utilizar sistema tal como apresentado na secção pré-compilada cabeçalhos das definições do separador diálogo projecto C/C ++. A opção de PCH automático (opção /YX) gera um ficheiro .PCH quando o ficheiro .PCH actual é inválido ou quando o ficheiro de cabeçalho é actualizado. Ficheiros .PCH inválidos incluem os gerados pelo outro compilador (C ou C++) ou aqueles que contêm um conjunto de ficheiros de cabeçalho diferente do conjunto de encontrado na origem de. Esta opção guarda melhor tempo de compilação se todos os ficheiros de origem que utilizam esta opção contêm um conjunto de ficheiros de cabeçalho idêntico e são de um tipo (C ou C++) ou se apenas um ficheiro do projecto, normalmente, é criado. A eficiência desta opção pode depender de ordem de compilação. Intercalagem C e C++ ficheiros de origem da ordem de compilação sempre volta a gerar um novo ficheiro .PCH. Criar um projecto depois de actualizar um ficheiro C quando a última compilação resultou num ficheiro .PCH C++, regenera o ficheiro .PCH. A opção ficheiro por utilizar PCH gera um ficheiro .PCH sempre que for compilado num ficheiro de origem com a caixa de verificação 'Criar .PCH ficheiro' (opção /Yc) activado. O ficheiro .PCH gerado é utilizado com todos os ficheiros de origem que tenham a caixa de verificação 'Utilizar .PCH ficheiro' (opção /Yu) activada. O compilador não gerar um novo ficheiro .PCH se aquele gerado é inválido; em vez disso, fornece uma das seguintes duas mensagens:
Versões anteriores do Visual C++ (1.51 1.50 e 1.1) permitido que separado pré-compilada ficheiro de cabeçalho para C e C++ ficheiros de origem. Porque é limitado a apenas um PCH Visual C++ versão 2.0, não é possível utilizar ficheiros de cabeçalho de pré-compilada diferente para C e C++ ficheiros. Migrar esse projecto sobre originarão a seguinte mensagem ao tentar criar o projecto: Os ficheiros de origem "file1.c" e "file2.cpp" são ambos configurados para produzir o ficheiro de saída "proj.pch". O projecto não pode ser criado. ReferênciasPara mais informações sobre cabeçalhos pré-compilados, verifique procure "Pré-compilada cabeçalhos" Books Online. A informação contida neste artigo aplica-se a:
Tradução automáticaIMPORTANTE: 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: 126717
(http://support.microsoft.com/kb/126717/en-us/
)
| Outros Recursos Outros Sites de Suporte
ComunidadesTraduções de Artigos |






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Voltar ao topo