Domanda

Sto davvero cominciando a capire che cosa la gente intende quando si dice che C++i messaggi di errore sono terribile in quanto a modelli.Ho visto terribilmente lungo errori per le cose semplici come una funzione che non corrisponde il suo prototipo.

Ci sono trucchi per la decifrazione di questi errori?

EDIT:Io sto usando sia gcc e MSVC.Entrambi sembrano essere abbastanza terribile.

È stato utile?

Soluzione

Si può provare il seguente strumento per rendere le cose più sane:

http://www.bdsoft.com/tools/stlfilt.html

Altri suggerimenti

Io sicuro come l'inferno non può.Piccoli errori di esplodere in pagine e pagine di spazzatura illeggibile.Di solito la mattina presto, prima del caffè.:(

Il mio unico consiglio è quello di prendere un respiro profondo, iniziare in alto e provare e analizzare le informazioni importanti.(Lo so, più facile a dirsi che a farsi, giusto?).

Come @nsanders detto STLFilt è una buona soluzione.Una casa di produzione STLFilt (quando non si vuole andare a la briga di installazione di Perl) è quello di copiare il messaggio di errore con un editor di testo e sostituire parti dell'errore fino a quando non diventa più gestibile.

ad es.

s/std::basic_string<char,std::char_traits<char>,std::allocator<char>>/string/g 

In meno geek termini questo significa che:

Sostituire:

std::basic_string<char,std::char_traits<char>,std::allocator<char>>

Con:

string

Alcuni compilatori dare il meglio di messaggi di altri.Che compilatore stai usando?Detto questo, sono tutti piuttosto male.C++0X risolvere la maggior parte di questo problema (vedi concetti), ma la norma non sarà rilasciato fino al 2009, e un ampio sostegno sarà probabilmente anche più tardi :-(

Almeno in Visual Studio, c'è più informazione data di Uscita di Costruire finestra, piuttosto che l'Elenco degli errori.Ho avuto un modello di errore in Errore l'Elenco stato, "Non è possibile convertire Pippo<int> per Pippo<int>".C'erano alcune righe seguenti effettivo di errore nella finestra di Output che mi ha aiutato a decifrare ciò che il vero problema è stato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top