2012-01-31 11 views
6

Zainstalowałem wtyczkę CDT Eclipse & na nowo zainstalowanym systemie Ubuntu. Indeksowanie jest ustawione na "Szybkie indeksowanie", które jest zalecane ("Pełne indeksowanie" wydaje się mieć marginalną różnicę).Indeksowanie CDT Eclipse nie działa w celu znalezienia deklaracji w ramach projektu

Przy tak wielu miejscach, jeśli nacisnę 'F3' („deklarację pokazu”) w każdej nazwy class lub zawierać nazwę pliku, kursor pozostaje nadal stoją i nie prowadzi do zgłoszenia. Jednak działa dla standardowych plików i symboli, takich jak, stdio.h, std::vector i tak dalej.

Na przykład, mam 2 pliki

/home/myself/Workspace/Project/X/Y/include/file.h 
/home/myself/Workspace/Project/X/src/file.cpp 

nie jestem w stanie zobaczyć żadnego oświadczenia o braku konfliktu class lub zmiennych wyświetlanych w file.cpp które zamieszkują wewnątrz file.h. Nawet naciśnięcie klawisza 'F3' na #include"file.h" nie jest możliwe, aby przejść do file.h.

Eclipse Workspace jest tworzony w folderze Workspace, w którym utworzono projekt C++ w folderze Project. Aby zapisać ścieżkę dołączania, wykonałem tę procedurę w środowisku Eclipse:

Projekt -> Właściwości -> C/C++ Ogólne -> Ścieżki i symbole -> Biblioteka i ścieżki -> Dodaj "/ Projekt/X/Y/include/file.h " (używane karty" Workspace "i" FileSystem ")

Ale wciąż nie ma szczęścia. Zrobiłem wystarczająco dużo wyszukiwania w Internecie i SO, ale nie mogłem znaleźć nic przydatnego. Zauważ, że używam Eclipse tylko do przeglądania kodu, a nie do budowania kodu od teraz.

Odpowiedz

14

Ok, ale działa. Rzeczywiście, niezależnie od tego, czy zawiera ścieżki, które zostały zawarte w Paths and Symbols, są zbędne i nie mają znaczenia, ponieważ wszystko pod Workspace/Project zostanie zindeksowane.

Rozwiązanie jest bardzo dziwne i wiąże się z skalowalnością , którą poznałem z this link. W Eclipse udać,

Window -> Preferences -> C/C++ -> Edytor -> Skalowalność -> "Włącz tryb skalowalności, gdy ..."

Ustaw ogromną liczbę takich jako 500000 i naciśnij "OK". Problem został rozwiązany! W moim przypadku rzeczywista ustawiona wartość to 5000, a plik źródłowy, który widziałem, był z linii 16k+.

+1

Jest to zły znak, jeśli masz duży plik C++. Spróbuj trochę zreorganizować, aby pomóc sobie w zdrowiu psychicznym. –

+2

Dzięki, pomogło! – StarDust

+3

@Captain Lepton: lub po prostu jest to znak, że używasz wrapperów SWIG (lub w inny sposób generowanych automatycznie kodów) lub nagłówków sterowników urządzeń sprzętowych lub 'sqlite.h' lub ... masz rację. To nie jest zły znak _per se_. – Tibo

Powiązane problemy