This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: compiling clicq, problems with c++


> Hi,
>
> I was trying to compile clicq, an icq client for linux, for cygwin.
> However I'm a little new to C++ although not to programming in
> general. Here is what I got problems with:
>
> 1. during make, gcc reported that the definition for AF_INET was
> missing. since I knew it was located in socket.h I located it and
> simply added an #include line.
> How can it be that such a thing is missing in sources you download
> from the web?
> There were multiple socket.h files. I chose one which was located in a
> */cygwin/* path. Why different header files?
>

if you look at the actual contents of those files - they include each other
the standard method of including socket.h is
#define <sys/socket.h>

> This problem seems to be solved.
>
>
> 2. make (or rather gcc) reports a number of problems like:
>
> In file included from clicq.c:23:
> cfg.h:14:8: warning: extra tokens at end of #endif directive
>
> Although I'm sure there are no more characters after the #endif
> directive. Whats going on here?

an old common thing to do was to put comments after #endif directives
this isnt strictly legal - so new gcc versions warn about it.

>
> Since its only a warning I ignored those.

yeah probably no harm
>
>
> 3. however, make still doesn't run through:
>
> clicq.c: In function `main':
> clicq.c:267: warning: assignment from incompatible pointer type
> clicq.c:268: warning: assignment from incompatible pointer type
> make[2]: *** [clicq.o] Error 1
> make[2]: Leaving directory `/tmp/clicq-0.1/src'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/tmp/clicq-0.1'
> make: *** [all-recursive-am] Error 2
>
> First point: why is line 267 not causing make to abord, but line 268
> if both are "warning"s of the same type?

first point - a given line of output doesnt cause make to abort - its when a
program returns with a return code indicating error that make aborts.

second point - Gcc will continue after it finds errors - and try to report
as much as possible.  you've only given the last 3 lines which are both
warnings.  - you havent given the command invoked so we dont know if -Werror
has been passed.  And theres no way to know whats between the command and
the first of the lines you have stated.

Not enough context.

third and final point


>
> Here's the contents of those lines:
>
> 267:
>   rl_completion_entry_function = (Function*)&dummy_completer;
>   rl_attempted_completion_function = &my_completer;
>
> where dummy_completer:
> char *dummy_completer(char *text, int state) {
>   return (char*)NULL;
> }
>
> and my_completer:
> char **my_completer(char *text, int start, int end) {
>   return complete_commandarg(rl_line_buffer, text, start, end);
> }
>
> I couldn't find the declaration of rl_completion_entry_function and
> rl_attempted_completion_function. Are there any Tricks to find these?
They are probably in header files which have been included.  Since you say
this is c++ - they are probably members of a class which is defined in a
header.

but its not an issue probably.

Gareth


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]