2012-01-31 42 views
6

Tôi đã cài đặt Eclipse & CDT plugin trên Ubuntu mới được cài đặt. Việc lập chỉ mục được đặt thành "Lập chỉ mục nhanh" được đề xuất ("Lập chỉ mục đầy đủ" dường như có sự khác biệt biên).Lập chỉ mục CDT Eclipse không hoạt động để tìm các khai báo trong dự án

Ở rất nhiều nơi, nếu tôi nhấn 'F3' ('tuyên bố hiển thị') trên bất kỳ tên class hoặc bao gồm tên tệp, con trỏ vẫn đứng yên và không dẫn đến khai báo. Tuy nhiên, nó hoạt động cho các tệp chuẩn và biểu tượng như, stdio.h, std::vector v.v.

Ví dụ, tôi có 2 file,

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

Tôi không thể nhìn thấy bất kỳ tuyên bố nào class hoặc các biến hiển thị trong file.cpp đó đang cư trú bên trong file.h. Ngay cả khi nhấn 'F3' trên #include"file.h", tôi không thể truy cập file.h.

Eclipse Workspace được tạo tại Workspace thư mục dự án C++ được tạo tại thư mục Project. Để lưu trữ đường dẫn bao gồm, tôi đã làm theo quy trình này trong Eclipse:

Project -> Properties -> C/C++ General -> Đường dẫn và Ký hiệu -> Thư viện và đường dẫn -> Thêm "/ Project/X/Y/bao gồm/file.h " (sử dụng các tab 'Không gian làm việc' và 'Hệ thống tệp' cả hai)

Nhưng vẫn không có may mắn. Tôi đã làm đủ tìm kiếm trên internet và SO, nhưng không thể tìm thấy bất cứ điều gì hữu ích. Lưu ý rằng, tôi đang sử dụng nhật thực chỉ để duyệt mã và không phải để xây dựng mã như bây giờ.

Trả lời

14

Ok, làm cho nó hoạt động. Trên thực tế, bất cứ điều gì bao gồm đường dẫn Tôi đã bao gồm trong Paths and Symbols là không cần thiết và chúng không có sự khác biệt vì mọi thứ dưới Workspace/Project sẽ được lập chỉ mục.

Giải pháp rất lạ và có liên quan đến khả năng mở rộng, mà tôi đã biết từ this link. Trong Eclipse đi đến,

Window -> Preferences -> C/C++ -> Editor -> Khả năng mở rộng -> "Enable chế độ khả năng mở rộng khi ..."

Đặt một số lượng lớn như vậy dưới dạng 500000 và nhấn "OK". Các vấn đề đã được giải quyết! Đối với trường hợp của tôi, giá trị cài đặt thực tế là 5000 và tệp nguồn tôi đã xem là 16k+ dòng.

+1

Đó là dấu hiệu xấu khi bạn có tệp C++ lớn. Hãy thử tái cấu trúc một chút chỉ để giúp bạn tỉnh táo. –

+2

Cảm ơn, nó đã giúp! – StarDust

+3

@Captain Lepton: hoặc đơn giản là dấu hiệu bạn đang sử dụng trình bao bọc SWIG (hoặc mã được tạo tự động khác) hoặc tiêu đề trình điều khiển thiết bị phần cứng hoặc 'sqlite.h' hoặc ... bạn sẽ nhận được điểm. Nó không phải là một dấu hiệu xấu _per se_. – Tibo