Como resolver o erro R6002 do C++

Escrito por jonathan ryan | Traduzido por vinícius albuquerque
  • Compartilhar
  • Tweetar
  • Compartilhar
  • E-mail

O erro de execução R6002 acontece quando um programa em C, compilado em um compilador da Microsoft, tenta realizar uma operação que exige suporte a ponto flutuante e as bibliotecas de ponto flutuante não foram vinculadas ao programa. A explicação mais provável é que nenhum código com ponto flutuante foi explicitamente incluído no seu código e o compilador acreditou que ele não era necessário. Isso pode ser causado pelo uso de "printf" com "%f" no especificador de formato, sem enviar verdadeiramente um argumento para ponto flutuante. Adicionar uma referência explícita a pontos flutuantes no carregamento de bibliotecas é a solução mais limpa, porém há outras alternativas, se não for possível localizar ou alterar o código de vinculação de bibliotecas.

Nível de dificuldade:
Fácil

Outras pessoas estão lendo

Instruções

  1. 1

    Procure por "printf" ou "scanf" (e funções relacionadas) que tiverem especificação de formato de ponto flutuante. A especificação mais provável é "%f", porém, também usa-se "%e", "%E", "%g" ou "%G". Ainda é possível que haja flags, ou especificações de comprimento e precisão. Uma expressão simples que funcionaria para todas as instâncias é "%.*[feEgG]".

  2. 2

    Modifique linhas de código que claramente invoquem funções que criem dados com pontos flutuantes. Comumente, essas linhas não funcionam porque estão pedindo à função "printf" para formatar os dados armazenados diretamente em uma matriz de bytes. Os detalhes de uma execução segura do código de pontos flutuantes depende amplamente de sua especificação na implementação. Para maior clareza, mova a conversão para pontos flutuantes para uma nova linha.

  3. 3

    Se não puder encontrar ou modificar um "printf" ou "scanf", adicione uma referência a uma variável de ponto flutuante. Isso obrigará o compilador a incluir as bibliotecas necessárias. Se não puder encontrar a linha responsável pelo erro, é provável que a biblioteca utilizada esteja causando o erro; adicionar uma variável desse tipo é a alternativa mais simples.

Dicas & Advertências

  • O erro R6002 também pode ocorrer se uma biblioteca C for especificada antes de uma biblioteca FORTRAN, em um programa que use mais de uma linguagem. Nesse caso, simplesmente mova as bibliotecas FORTRAN para a frente da lista.
  • Se esse erro acontecer em um computador antigo, rodando o sistema Windows 3.1 ou anterior, o problema pode ser a falta de um coprocessador matemático. Remova qualquer compilador ou flags vinculadoras, como a /FPi87, que exige um coprocessador. O compilador automaticamente incluirá as bibliotecas para resolver o problema.

Não perca

Filtro:
  • Geral
  • Artigos
  • Slides
  • Vídeos
Mostrar:
  • Mais relevantes
  • Mais lidos
  • Mais recentes

Nenhum artigo disponível

Nenhum slide disponível

Nenhum vídeo disponível