2009-09-19 16 views
5

Sto lavorando con un piccolo gruppo su un progetto C++ in NetBeans."Impossibile risolvere ..." in NetBeans 6.7.1, Linux, C++

Per qualche motivo, NetBeans sta segnalando cose come "stringa", "endl", "cout" come "Impossibile resettare" anche se sono state incluse le librerie corrette.

Il progetto viene compilato e eseguito come previsto, quindi, alla fine della giornata, non è un grosso problema, è solo che avere tutto contrassegnato come un errore lo rende abbastanza fastidioso.

non sono stato in grado di trovare qualsiasi cosa su questo bug. Solo un riferimento vago in un blog. Qualcun altro l'ha provato?

Ovviamente non è diffuso, quindi ci deve essere un'impostazione/configurazione che provoca. Qualcuno sa a chi impedire che ciò accada?

EDIT:

No, questi "errori" sono solo nell'IDE. Il codice viene compilato correttamente e viene eseguito. Lo sviluppatore ha usato "using namespace std;" quindi non ci dovrebbero essere problemi. Sembra che l'IDE NetBeans sia bacato.

codice di esempio:

#include <stdlib.h> 
#include <string> 
#include <iostream> 

using namespace std; 

int main(int argc, char** argv) 
{ 
    string test; 
    test = "Why?"; 

    cout << test << endl; 

    return (EXIT_SUCCESS); 
} 

Questo codice compila e stampa "Perché?" ma ha "stringa", "cout" e "endl" contrassegnati come errori nell'IDE. In modo esplicito utilizzando std :: non fa alcuna differenza

Pulire Edit:

Per chiunque sia interessato, pochi giorni dopo ho avuto 6 aggiornamenti disponibili per NetBeans. Dopo aver installato questi aggiornamenti, il problema è stato risolto, nonostante il codice non cambiasse. Quindi, apparentemente era un bug di NetBeans.

+0

Stai vedendo questi problemi nell'IDE durante l'edizione del codice o li vedi durante la fase di compilazione? –

+1

Solo nell'IDE durante la codifica. Tutto compila E funziona senza errori o avvisi. È un codice completamente valido, NetBeans sembra non essere d'accordo –

+0

Dovresti includere "" invece di "" quando scrivi C++. cstdlib si avvarrà degli spazi dei nomi in C++, tra le altre cose. –

risposta

0

per chiunque sia interessato, pochi giorni dopo ho avuto 6 aggiornamenti disponibili per NetBeans dopo aver installato questo aggiornamento, il problema è stato risolto, nonostante il codice non cambi, quindi apparentemente si trattava di un bug di NetBeans.

+0

anche io ho questo problema. Ho NetBeans 7.1. Ma in Windows 7. Ancora non funziona. Il codice funziona bene. Ma gli errori appaiono. [ecco il mio problema] (http://stackoverflow.com/questions/20936513/c-in-netbeans-shows-errorsunable-to-resolve-identifiers-but-the-code-runs-fi) – prime

0

Prova std::string, std::endl, std::cout, ecc

Oppure,

using std::string; 
using std::endl; 
using std::cout; 

all'inizio del file di origine, dopo aver incluso le librerie. Forse il tuo IDE li sta segnalando come errori, ma poi usando lo spazio dei nomi standard comunque.

È anche possibile utilizzare

using namespace std; 

ma che è generalmente una cattiva abitudine in quanto ingombra lo spazio dei nomi globale, e si può finire con ambiguità (lo spazio dei nomi standard è grande). Personalmente, ho appena messo std:: prima di tutto nei miei piccoli progetti, e un using std::______ nel progetto o blocchi in cui lo uso in quelle più grandi.

In ogni modo, questo è ciò che l'errore suona come, ma (almeno nella mia esperienza) il programma dovrebbe riuscire a compilare se questo è il problema.

Per la tua modifica:
se gli errori che ricevi provengono solo dall'IDE, forse hai sbagliato modalità o qualcosa del genere? Il codice che hai postato nel tuo esempio è abbastanza semplice C++ che qualsiasi compilatore o IDE che è disposto a lavorare con C++ avrebbero gestire la cosa non è un problema.Se gli errori che hai descritto provenissero dal tuo compilatore, significherebbe che tu non hai incluso lo spazio dei nomi o stavi cercando di compilare il codice C++ con un compilatore C - forse netbeans pensa che tu stia scrivendo C?

+0

Per "il programma non dovesse compilare se questo è il problema", si prega di vedere dalla domanda effettiva, la seguente citazione: "Il progetto si compila e viene eseguito come previsto" Grazie per aver tentato di aiutare comunque. –

+0

Non può essere neanche quello. Riconosce le classi che scriviamo correttamente e passiamo per riferimento. Non riesco a pensare ad alcuna modalità linguistica in cui potrebbe essere il punto in cui ciò andava bene e la stringa no. –

+0

strano. Non c'è nient'altro che io possa pensare a –

1

hmm .. questa stessa cosa mi è successa. Una volta che ho avviato NetBeans, ho sottolineato tutte le mie chiamate a openGL (gl, glu e glut) e non sono riuscito a sbarazzarmi degli errori. Ha compilato bene (+ non ho modificato nulla nel codice dall'ultima volta che non ha mostrato errori)

Dopo aver letto questo post ho controllato gli aggiornamenti, aggiornato e ora non indica errori :) è strano perchè aggiorno regolarmente ..

EDIT:. nvm, ora si evidenziano ancora una volta :(

0

FWIW Ho avuto lo stesso problema con Netbeans 6.8 su Ubuntu 10.04. Frustrantemente Netbeans mi ha detto anche che era aggiornato nel menu Aiuto -> Controlla aggiornamenti (poiché questa è la versione corrente di Ubuntu).

La rimozione di Netbeans tramite synaptic/aptitude e il download e l'installazione manuale dell'ultima versione (6.9.1) hanno risolto anche il problema. Spero che non ci siano altre cose del genere in negozio ...

Ora che ho risolto questo problema e ho applicato la patch delle prestazioni this, ho ottenuto un IDE molto carino con il completamento veloce del codice. E 'un peccato che questa esperienza non sia disponibile out of the box, ho passato un bel po' di tempo su Eclipse CDT e Netbeans cercando di far funzionare le cose.

Problemi correlati