Page 1 of 1

gcc : link error doesn't show error

Posted: Sat Dec 13, 2008 10:08 pm
by jfouche
Hi

I saw that gcc linker errors are not see by codelite :

Code: Select all

./Release/rng.o:rng.cpp:(.text$_ZN3xml3rng6ParserD0Ev[xml::rng::Parser::~Parser()]+0x31): undefined reference to `xml::IParser::~IParser()'
collect2: ld returned 1 exit status
mingw32-make.exe[1]: *** [../bin/setup] Error 1
mingw32-make.exe: *** [All] Error 2
0 errors, 0 warnings, total time: 00:00:14 seconds
----------Build Ended----------
Do I have to change something in CL to see this as an error ?
--
Jérémie

Re: gcc : link error doesn't show error

Posted: Sat Dec 13, 2008 10:14 pm
by eranif
Basically, you need to create a regex from this pattern and set it in settings -> build settings -> error pattern

Eran

Re: gcc : link error doesn't show error

Posted: Sun Dec 14, 2008 2:35 pm
by sdolim
Also, errors emitted by make itself (for example, "no way to make target X needed by Y") are not seen as errors. Other tools used in custom builds, like yacc, can also produce different kinds of errors. So we might want to generalize the current regex settings, which support only compiler errors and warnings.

Perhaps a table with these columns: Tool, Status, Regexp, FileGrp, LineGrp. The meaning of each of these columns is:
- Tool: type in the name of the tool that gives the error/warning to be recognized by the following regexp (gcc, ld, make, yacc,...)
- Status: choose from Error or Warning radio buttons (maybe Note too -- I've seen some gcc messages with this. Would need a 3rd color)
- Regexp: type in the regexp in this column, with groups for catching filename and line number (if any)
- FileGrp: type the number of which group in the Regexp that matches the filename (leave blank if none)
- LineGrp: type the number of which group in the Regexp that matches the line number (leave blank if none)

With a table, the user can enter as many entries as needed to cover the tools used by the project. Also, some tools emit different kinds of error messages. It is hard to write a single regexp to match them all. With a table, you can split them into multiple entries, with a simpler regexp for each.

Currently in the Build Tab we are just checking two regexps. This could be changed to iterate over the table and try each regexp entry. The output could highlight the tool's name in the error line by bolding it too.

Scott