Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

eclipse C project shows errors (Symbol could not be resolved) but it compiles

I have got access to a C project at work that I have to implement some stuff in. I was able to load it into eclipse and can Project -> Build All it. Compilation shows no errors or warnings. But in eclipse, there are a lot of errors shown. One example:


There is an enum

typedef enum MeasurementType {
    PN, BB, AM, RES
} MEAS_TYPE;
MEAS_TYPE type;

in one of the files. It is used somewhere else and produces an error like this: enter image description here

It is most interesting, that only AM seems to be a problem, not PN or BB.


I haven't found a satisfying solution to this. I already tried to include all possible directories I could think of in Project Properties -> C/C++ General -> Paths and Symbols (like this post suggests), but that didn't help.

The project itself is compiled with Makefiles (which is why I need Project -> Build All). Can it be that eclipse does not interpret those Makefiles correctly or something? I am a bit lost after messing around with that stuff for a few hours and not getting a single step forward.

EDIT: Here are some screenshots for my build-relevant project properties (at least I believe they are relevent :D). Tell me if you need more information.

enter image description hereenter image description here

like image 961
brimborium Avatar asked Nov 07 '12 11:11

brimborium


4 Answers

Since I got a suggestion from moooeeeep, I will post the solution here. I am still accepting alk's answer, because he was the one that showed me towards the right direction.

My solution:

If I click on AM in eclipse (the one that is underlined with red) and press F3 to go to the declaration, it actually asked me to which declaration I want to go. It listed the (correct) enum constant as well as some variable from somewhere else. Therefore the problem was that multiple declarations of AM were present in different code locations.

I fixed this problem by just renaming the enum constant to something else (AN in my case). There is no variable with the same name in the code and therefore eclipse was able to refactor it correctly.

like image 157
brimborium Avatar answered Sep 28 '22 17:09

brimborium


This is quite an old question, but I hope this short answer can be useful to someone.

I was having similar errors with enums in the IDE but not when compiling, which seemed to indicate a bug in Eclipse's Codan. After upgrading to the new version of Eclipse (Neon 4.6) released in June, the errors have disappeared. Just try updating Eclipse!

like image 38
Pyves Avatar answered Sep 28 '22 17:09

Pyves


It looks as if Eclipse (not gcc) is setup to parse the wrong or some additonally, propably outdated (include) source files.

like image 26
alk Avatar answered Sep 28 '22 17:09

alk


There is a bug report added in Eclipse CDT Bugzilla with regard to this problem: https://bugs.eclipse.org/bugs/show_bug.cgi?id=439553

like image 21
Compfy Avatar answered Sep 28 '22 17:09

Compfy