Problem with symbol discovery in CDT [message #1071693] |
Sat, 20 July 2013 22:52 |
Baldur Gislason Messages: 1 Registered: July 2013 |
Junior Member |
|
|
I am using a gnu make project, with a hand written makefile.
Basically, the symbol discovery is very broken, while the path discovery works nicely, and there's no way to disable the symbol discovery without disabling the path discovery it seems.
The symbol discovery keeps picking up a symbol that is entered by hand in the makefile, where I run the compiler with a specific symbol to dump a memory map to file.
Line looks like $(CC) $(CFLAGS) -D__NOSTRUCTS -O realtimemap.o realtime.c
and realtimemap.o is not linked in the final process, it's just used for building a memory map of struct members.
Meanwhile, Eclipse thinks __NOSTRUCTS always applies, and any attempts to disable that flag from the list of discovered symbols only works until the list is generated again.
This colours every single source file red in the header and creates red markers for a whole bunch of lines in every single one.
Can anyone point me to a better way to generate an addressed list of the members of a struct in C, than to compile the source file that contains nothing but the struct into a binary, but without the struct around the members?
Failing that, I'd like a way to either disable the symbol discovery or filter out symbols that I want Eclipse to not know about.
|
|
|
Re: Problem with symbol discovery in CDT [message #1072660 is a reply to message #1071693] |
Tue, 23 July 2013 08:17 |
Axel Mueller Messages: 1973 Registered: July 2009 |
Senior Member |
|
|
- Open Project Properties->C/C++ General->Preprocessor..
- In the tab "Providers" enable "CDT User Settings".
- switch to the tab "Entries" and select "CDT User Settings" for GNU C language and then click Add..
- here you can add a preprocessor macro
- unfortunately, there is no way to undef an existing symbol (as far as I know); you can only change the value
Another possibility: How do you build? Do you use make targets? If yes, then you can disable the project builders in the make target for your memory map.
If all fails you can disable in Properties->C/C++ General->Preprocessor..Providers the "GCC build output parser" completely.
Before you ask
- search this forum
- see the FAQ http://wiki.eclipse.org/CDT/User/FAQ
- google
|
|
|
Powered by
FUDForum. Page generated in 0.03264 seconds