2009-09-19 9 views
5

Pracuję z małą grupą nad projektem C++ w NetBeans."Nie można rozwiązać ..." w NetBeans 6.7.1, Linux, C++

Z jakiegoś powodu NetBeans zgłasza takie rzeczy jak "string", "endl", "cout" jako "Nie można rozwiązać", mimo że uwzględniono poprawne biblioteki.

Projekt kompiluje się i działa zgodnie z oczekiwaniami, więc na koniec dnia nie jest to wielka sprawa, po prostu wszystko, co jest oznaczone jako błąd, sprawia, że ​​jest to dość irytujące.

Nie znalazłem nic na temat tego błędu. Tylko jedno ogólne odwołanie na blogu. Czy ktoś inny tego doświadczył?

Oczywiście nie jest on szeroko rozpowszechniony, więc musi istnieć ustawienie/konfiguracja, które go powoduje. Czy ktoś wie, kto temu zapobiec?

EDIT:

Nie, te "błędy" są wyłącznie w IDE. Kod kompiluje dobrze i działa. Programista użył "using namespace std;" więc nie powinno być problemów. Wygląda na to, że IDE NetBeans jest błędne.

Przykładowy kod:

#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); 
} 

Ten kod kompiluje i drukuje "Dlaczego?" ale ma "string", "cout" i "endl" oznaczone jako błędy w IDE. Jawnie przy użyciu std :: czyni żadnej różnicy

Clean up Edit:

Dla wszystkich zainteresowanych, kilka dni później miałem 6 aktualizacje dostępne dla NetBeans. Po zainstalowaniu aktualizacji problem został usunięty, mimo że kod się nie zmienia. Najwyraźniej był to błąd NetBeans.

+0

Czy widzisz te problemy w IDE podczas edycji kodu lub czy widzisz je podczas etapu kompilacji? –

+1

W IDE tylko podczas kodowania. Wszystko się kompiluje i działa bez błędów i ostrzeżeń. Jest to całkowicie poprawny kod, NetBeans po prostu się nie zgadza –

+0

Powinieneś dołączyć '' zamiast '' podczas pisania C++. cstdlib skorzysta między innymi z przestrzeni nazw w C++. –

Odpowiedz

0

dla wszystkich zainteresowanych, kilka dni później miałem 6 aktualizacje dostępne dla NetBeans po zainstalowaniu tej aktualizacji, problem było naprawione, pomimo tego, że kod się nie zmieniał, więc najwyraźniej był to błąd NetBeans.

+0

Mam ten problem. Mam NetBeans 7.1. Ale w Windows 7. Nadal nie działa. Kod działa poprawnie. Ale pojawiają się błędy. [tutaj jest mój problem] (http://stackoverflow.com/questions/20936513/c-in-netbeans-shows-errorsunable-to-resolve-identifiers-but-the-code-runs-fi) – prime

0

Spróbuj std::string, std::endl, std::cout itp

Albo

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

na początku pliku źródłowego, po to biblioteki. Może twój IDE zgłasza je jako błędy, ale i tak używa standardowej przestrzeni nazw.

Można też po prostu użyć

using namespace std; 

ale to ogólnie zły nawyk, jak to zaśmiecanie przestrzeni nazw globalnych, a może skończyć się z dwuznaczności (średnia nazw jest duża). Osobiście po prostu umieszczam std:: przed wszystkim w moich małych projektach i using std::______ w projekcie lub blokach, w których używam go w większych.

W każdym razie, taki właśnie jest błąd, ale (przynajmniej z mojego doświadczenia) program powinien się nie skompilować, jeśli to jest problem.

Pod względem edycji:
jeśli błędy, które otrzymujesz pochodzą tylko z IDE, może masz go w niewłaściwym trybie czy coś? Kod, który napisałeś w swoim przykładzie, jest dość prosty w C++, że każdy kompilator lub IDE, który jest chętny do pracy z C++, poradziłby sobie z tym bez problemu.Jeśli opisane przez ciebie błędy pochodzą z twojego kompilatora, oznacza to, że albo nie umieściłeś przestrzeni nazw, albo próbujesz skompilować kod C++ z kompilatorem C - może netbeans myśli, że piszesz C?

+0

"Program nie może się skompilować, jeśli to jest problem". Z tego pytania można się zapoznać następującym cytatem: "Projekt jest kompilowany i działa zgodnie z oczekiwaniami" Dziękujemy za pomoc. –

+0

To też nie może być. Uznaje klasy, które piszemy poprawnie, a także przekazuje jako odniesienie. Nie mogę wymyślić żadnego trybu językowego, w którym to było w porządku, a ciąg nie był. –

+0

dziwne. Nie ma nic innego, co mógłbym pomyśleć o –

1

hmm .. to samo przydarzyło mi się. Jednorazowo uruchomiłem NetBeans po prostu podkreśliłem wszystkie moje połączenia z openGL (gl, glu i glut) i nie mogłem pozbyć się błędów. Wszystko dobrze skompilowane (+ nic nie zmieniłem w kodzie od ostatniego pokazania żadnych błędów)

Po przeczytaniu tego posta sprawdziłem aktualizacje, zaktualizowałem je i teraz oznacza to brak błędów :) to dziwne, ponieważ aktualizuję regularnie ..

EDIT:. NVM, teraz są podkreślone ponownie :(

0

FWIW Miałem ten sam problem z Netbeans 6.8 na Ubuntu 10.04. Frustratingly Netbeans powiedział mi również, że był aktualny w menu Help -> Check for updates (ponieważ jest to bieżąca wersja Ubuntu).

Usunięcie Netbeans poprzez synaptic/aptitude oraz ręczne pobranie i zainstalowanie najnowszej wersji (6.9.1) również rozwiązało problem. Mam nadzieję, że nie będzie więcej takich złośliwości w sklepie ...

Po rozwiązaniu tego problemu i zastosowaniu poprawki wydajności this, mam naprawdę słodką konfigurację IDE z szybkim uzupełnianiem kodu. Szkoda, że ​​to doświadczenie nie jest dostępne po wyjęciu z pudełka. Spędziłem sporo czasu zarówno na platformach Eclipse CDT, jak i Netbeans, próbując sprawnie działać.

Powiązane problemy