Recentemente ho cambiato da Eclipse 3.6 a Eclipse 3.7, che sto usando per lo sviluppo C++ in Ubuntu 11.04.Eclipse 3.7 non può risolvere i tipi in C++ Editor
Con la versione 3.6 non ho avuto grossi problemi, tranne che ho sempre avuto alcuni problemi con l'indicizzatore. Ora con la versione 3.7 inizia a contrassegnare i tipi non risolti come errori. Dal momento che l'indicizzatore sembra non gradirmi ancora di più, la mia Eclipse apparentemente non conosce tipi come uint16_t
o size_t
.
Al contrario degli errori visualizzati nell'editor di codice, il mio compilatore non ha problemi con la compilazione del codice e la risoluzione di tutti i simboli e tipi, quindi questo sembra essere un problema dell'IDE stesso.
Esistono modi per evitare questo comportamento, perché tutte le sottolineature rosse rendono il mio codice sempre più illeggibile ...?
Aggiornamento:
D'accordo con qualche ricerca e la risposta da Dennis ho scoperto che ho bisogno di aggiungere alcuni percorsi per Project Properties/ C/C++ General/ Paths and Symbols
Dal momento che sto costruendo per un PowerPC, invece di un obiettivo I32 , Non posso semplicemente aggiungere /usr/include
. Invece avevo bisogno di aggiungere
/usr/powerpc-linux-gnu/libc/usr/include
per tutte le intestazioni standard (come stdint.h
). Inoltre ho bisogno:
/usr/lib/gcc/powerpc-linux-gnu/4.5.1/include
per il stdarg.h
.
Ora quasi tutti gli errori sono spariti. L'unica funzione che mi disturba ancora è printf
dall'intestazione stdio.h
. Ho cercato e il file di intestazione si trova all'interno dei percorsi inclusi. Ancora ricevo un errore che dice Function printf could not be resolved
. Voglio sottolineare ancora, che questi sono solo degli errori mostrati da Eclipse - La compilazione stessa funziona bene.
Quindi questo in realtà getta fino 3 domande:
nelle proprietà del progetto la sezione
Paths and Symbols
è coerente con i percorsi di inclusione fuori della sezioneC++ Build/Settings/C++ Includes
. Ciò significa che aggiungere/eliminare un percorso in una di queste sezioni influisce direttamente sulla voce degli altri. Dal momento che loC++ Includes
è direttamente coerente con il compilatore, mi chiedo perché il compilatore possa compilare correttamente (e trova le intestazioni) anche se non sono passati a lui come percorso? Esiste un tipo di percorso GCC standard, che non conosco?Perché non trova
printf
in eclissi? Il file di intestazionestdio.h
è incluso e contiene anche la dichiarazione diprintf
- quindi perché l'editor di codice Eclipse mi dice che non può risolverlo?Perché i file di intestazione sono così divisi? Sono consapevole del fatto che ho bisogno di altri file di intestazione se sto creando un altro traget (ad esempio PowerPC) - Ma perché GNU GCC separa quelle intestazioni in diverse directory?
Sto usando il compilatore powerpc-linux-gnu-g ++. Nelle mie impostazioni di compilazione C++ ho anche configurato il percorso di inclusione ('/ usr/powerpc-linux-gnu/include/C++/4.5.1'). Questo percorso ho anche aggiunto ai percorsi Project Include ... purtroppo non cambia nulla. – Toby
'size_t' è definito in' 'tra gli altri. Se # includi nel tuo file vedi se fa sparire le linee rosse. In caso contrario, vedere se il '#include ' è sottolineato con una linea gialla. In tal caso, passa il mouse sopra di esso e, se dice che non riesce a trovarlo, hai un problema con l'impostazione di inclusione. Prova anche a ricostruire l'indice per il tuo progetto. –
Dennis
Ciao Dennis, grazie per il tuo input - Ho appena aggiornato la domanda un po '. Forse puoi aiutarmi ulteriormente. – Toby