Você lê erros de compilação em C ou C ++ após o primeiro?

19

Eu nunca entendi por que os compiladores C e C ++ tentam se recuperar de erros e continuar analisando. Quase sempre, o primeiro erro gera um fluxo de erros falsos que desaparecem assim que o primeiro é corrigido. Após vários anos de experiência, simplesmente parei de olhar para qualquer erro, exceto o primeiro de cada arquivo. Executo novamente o compilador e, em seguida, faço isso novamente até que não haja mais erros. É uma prática comum?

alexk7
fonte
Acho que só li as primeiras, mas não trabalho com milhares de milhões de soluções de arquivos de origem, o que ajuda.
Coder

Respostas:

19

Às vezes, os erros não estão relacionados. Acho mais fácil olhar para uma lista de erros e corrigir a causa raiz de uma série de erros relacionados e, em seguida, corrigir o próximo erro não relacionado. Se o projeto for grande e demorar um pouco para ser construído, acho que trabalhar dessa maneira é menos frustrante do que corrigir o primeiro erro, recompilar, repetir ...

FrustratedWithFormsDesigner
fonte
3
+1: Lembre-se, se o projeto for grande e demorar um pouco para ser construído, é aconselhável não mudar muito entre compilações, para que você possa encontrar quaisquer problemas introduzidos com relativa facilidade.
Donal Fellows
Concordo que, no caso o seu tempo de compilação é muito longo, pode ser útil para procurar outros erros alheios, mas eu preferiria para corrigir os problemas de dependência que causa as longas compilações incrementais ...
alexk7
8

Depende do tempo de compilação . Por exemplo, se eu souber que acabei de alterar um cabeçalho mestre que acionará uma reconstrução de todo o projeto, certamente examinarei mais atentamente o restante da pilha de erros e verificarei se consigo corrigi-los. Isso me dá uma sensação melhor quando me levanto para fazer café enquanto o compilador é executado.

Alexander Gessler
fonte
4

Sim, faço o mesmo, a menos que esteja usando o compilador para me ajudar a refatorar, caso em que gosto da lista completa de erros :)

Stephen Bailey
fonte
Muitos IDEs modernos têm ferramentas de refatoração disponíveis com o clique de um botão; portanto, o erro de refatorar por compilador não é necessário se você tiver acesso e habilidades a essas ferramentas. A menos que você prefira ...
FrustratedWithFormsDesigner
1
Sim, mas meu trabalho principal IDE VS tem nenhum para C ++ :( Quando não há nenhuma ferramenta que vai encontrar uma maneira!
Stephen Bailey
1
O Visual Assist X da Whole Tomato adiciona refatoração ao VS for C ++.
stonemetal 30/03/11
4

Se houver uma lacuna nos números de linha, o compilador provavelmente se recuperou e encontrou outro erro.

Normalmente, tente apenas corrigir um erro em cada grupo.

Bo Persson
fonte
1

Compiladores melhores produzirão melhores resultados e fornecerão erros mais úteis após o primeiro, geralmente através de algum tipo de correção automática dos erros, para que, presumivelmente, um bom código possa pelo menos ser verificado. Porém, estou acostumado a trabalhar em Java, no Eclipse, onde erros de sintaxe são detectados e corrigidos facilmente instantaneamente, e outros erros do compilador tendem a ser mais diversos e mais fáceis de recuperar. Só posso assumir que é semelhante ao trabalhar nos IDEs da Microsoft e em outros em C ++ ou C #.

jprete
fonte
0

Sim - ou pelo menos eu os roço. É muito fácil descobrir se os erros estão relacionados (geralmente basta olhar o número da linha) e eu gosto de consertá-los de uma só vez e recompilar.

Nemanja Trifunovic
fonte
0

Eu faço isso (para ler os erros anteriores ao primeiro) apenas se a compilação de 1 cpp for muito longa. Ou não está disponível. Em seguida, prefiro garantir que corrigi tudo o que consegui identificar nos erros do compilador como não relacionado ao primeiro erro.

Quando o seu arquivo cpp pode ser compilado sozinho e em menos de um segundo (ou você tem um "intellisense" apontando erros antes mesmo da compilação começar), você não precisa fazer isso a maior parte do tempo.

Atualmente, trabalho em um projeto em que não consigo compilar um cpp sozinho (e não tenho a mão no sistema de compilação, portanto não posso alterar esse O__o) e alguns arquivos cpp podem levar mais de dez minutos para compilar ( mesmo depois de muito esforço para reduzi-lo, reduzimos apenas para 50% do tempo de compilação original ...).

Nesse tipo de configuração de compilação muito longa, você costuma pensar muito antes de clicar em "build" ... e até pensar muito depois, para talvez encontrar bugs antes do compilador, já que é mais rápido em obtê-los mentalmente do que ele .

Klaim
fonte
-1

É bastante comum fazer o que você faz. Normalmente digo a estagiários ou programadores iniciantes, sobrecarregados com o número de erros, para ignorar quase todos os erros, exceto o primeiro. Provavelmente, é um erro real que precisa ser corrigido, e não um erro fantasma enganoso causado por um erro anterior. Alguns compiladores (a maioria?) Têm a opção de parar de compilar após o primeiro erro por esse motivo. Os sistemas de compilação geralmente podem ser configurados para parar após o primeiro arquivo que também possui erros.

No entanto, existem razões para continuar a compilar após a detecção de erros também. Por exemplo, convém contar quantos arquivos têm erros ou verificar se um arquivo de cabeçalho incluído causa erros em mais de um arquivo.

destenson
fonte