Re: Problem with sigc++

Pierre SOUCHAY <[email protected]> Wed, 28 Jan 2004 16:09:53 +0100
Newsgroups gmane.comp.sysutils.cfg.devel
Message-ID <[email protected]>
Hi Jason,

Jason Long wrote:
> Unfortunately, I don't recall seeing the compiler errors you're having. My
> first thought is that it is incompatible with version 3.3 of gcc, but that
> seems unlikely.
Yes.

> 
> I guess my suggestion would be to create a cpp file that only includes
> sigc++.h and see if the compiler errors go away...
> e.g.
> test.cpp:
> =============
> #include <sigc++.h>
> =============
OK, it works...

What does not work is the following:

$ cat test.cpp
#include <qobject.h>
#include <FrontendHelper.h>


int main(int argc, char **argv){
         return 0;
}
$ gcc-3.3 -DHAVE_CONFIG_H -I. -I/usr/share/qt3/include -I. -I.. 
-I/opt/include -I/usr/lib/sigc++-1.2/include -I/usr/include/sigc++-1.2 
-I/home/pierre/apps/config4gnu-0.1.8/src/libconfig4gnu test.cpp -o /dev/null
In file included from /usr/include/sigc++-1.2/sigc++/sigc++.h:27,
                  from 
/home/pierre/apps/config4gnu-0.1.8/src/libconfig4gnu/CfgObject.h:9,
                  from 
/home/pierre/apps/config4gnu-0.1.8/src/libconfig4gnu/FrontendHelper.h:4,
                  from test.cpp:2:
/usr/include/sigc++-1.2/sigc++/signal.h:167: error: declaration does not
    declare anything
/usr/include/sigc++-1.2/sigc++/signal.h:167: error: parse error before `)'
    token
/usr/include/sigc++-1.2/sigc++/signal.h:171: error: ISO C++ forbids defining
    types within return type
/usr/include/sigc++-1.2/sigc++/signal.h:171: error: syntax error before `
    operator'
/usr/include/sigc++-1.2/sigc++/signal.h:172: error: ISO C++ forbids 
declaration
    of `operator()' with no type
/usr/include/sigc++-1.2/sigc++/signal.h:172: error: `int SigC::operator()()'
    must be a nonstatic member function
/usr/include/sigc++-1.2/sigc++/signal.h: In function `int 
SigC::operator()()':
/usr/include/sigc++-1.2/sigc++/signal.h:172: error: `impl_' undeclared 
(first
    use this function)
/usr/include/sigc++-1.2/sigc++/signal.h:172: error: (Each undeclared 
identifier
    is reported only once for each function it appears in.)
/usr/include/sigc++-1.2/sigc++/signal.h:172: error: `emit_' undeclared 
(first
    use this function)
/usr/include/sigc++-1.2/sigc++/signal.h: At global scope:
/usr/include/sigc++-1.2/sigc++/signal.h:175: error: ISO C++ forbids 
declaration
    of `Signal0' with no type
/usr/include/sigc++-1.2/sigc++/signal.h: In function `int SigC::Signal0()':
/usr/include/sigc++-1.2/sigc++/signal.h:175: error: `int SigC::Signal0()'
    redeclared as different kind of symbol
/usr/include/sigc++-1.2/sigc++/signal.h:144: error: previous declaration 
of `
    template<class R, class Marsh> class SigC::Signal0'
/usr/include/sigc++-1.2/sigc++/signal.h:144: error: previous non-function
    declaration `template<class R, class Marsh> class SigC::Signal0'
/usr/include/sigc++-1.2/sigc++/signal.h:175: error: conflicts with function
    declaration `int SigC::Signal0()'
/usr/include/sigc++-1.2/sigc++/signal.h:175: error: only constructors 
take base
    initializers
/usr/include/sigc++-1.2/sigc++/signal.h:176: confused by earlier errors, 
bailing out

----------


In fact, the compiler is confused when I try to include qt and sigc++ !!

Need more investigations... if I remove the line:
#include <qobject.h>

It works... funny. I think it is related to the method emit, but the 
compiler is confused.

emit exist in QT and sigc++ it seems...

Have any idea ?

Thanks for your feedback.

Best Regards.

Pierre Souchay

> 
> Furthermore, you could try including the sigc++.h header before you include
> Config4GNU headers and see if that changes the errors you're getting.
> 
> Now, about your problem with the gtkmm client. Are you getting the same
> errors with that as well?

No other kinds of errors related to gtkmm... but I think I just don't 
have all the needed libraries.
> 
> Jason
> 
> 
> 
>>>>[email protected] 1/27/04 8:25:02 AM >>>
> 
> Hi,
> 
> I have compiled config4gnu on my debian testing with gcc3.3 and it 
> works. I use sigc++-1.2 (debian package) and would like to create a 
> client for KDE.
> 
> I know sigc++ is not your library, but maybe you already had similar 
> issues (see at the bottom).
> 
> I cannot compile your gtkmm client neither.
> 
> Best Regards.
> 
> Thanks.
> 
> Pierre Souchay
> 
> 
> In file included from /usr/include/sigc++-1.2/sigc++/sigc++.h:27,
>                   from 
> /home/pierre/apps/config4gnu-0.1.8/src/libconfig4gnu/CfgObject.h:9,
>                   from 
> /home/pierre/apps/config4gnu-0.1.8/src/libconfig4gnu/FrontendHelper.h:4,
>                   from konfig4gnu_part.cpp:15:
> /usr/include/sigc++-1.2/sigc++/signal.h:167: error: declaration does not
>     declare anything
> /usr/include/sigc++-1.2/sigc++/signal.h:167: error: parse error before `)'
>     token
> /usr/include/sigc++-1.2/sigc++/signal.h:171: error: ISO C++ forbids
> defining
>     types within return type
> /usr/include/sigc++-1.2/sigc++/signal.h:171: error: syntax error before `
>     operator'
> /usr/include/sigc++-1.2/sigc++/signal.h:172: error: ISO C++ forbids 
> declaration
>     of `operator()' with no type
> /usr/include/sigc++-1.2/sigc++/signal.h:172: error: `int
> SigC::operator()()'
>     must be a nonstatic member function
> /usr/include/sigc++-1.2/sigc++/signal.h: In function `int 
> SigC::operator()()':
> /usr/include/sigc++-1.2/sigc++/signal.h:172: error: `impl_' undeclared 
> (first
>     use this function)
> /usr/include/sigc++-1.2/sigc++/signal.h:172: error: (Each undeclared 
> identifier
>     is reported only once for each function it appears in.)
> /usr/include/sigc++-1.2/sigc++/signal.h:172: error: `emit_' undeclared 
> (first
>     use this function)
> /usr/include/sigc++-1.2/sigc++/signal.h: At global scope:
> /usr/include/sigc++-1.2/sigc++/signal.h:175: error: ISO C++ forbids 
> declaration
>     of `Signal0' with no type
> /usr/include/sigc++-1.2/sigc++/signal.h: In function `int
> SigC::Signal0()':
> /usr/include/sigc++-1.2/sigc++/signal.h:175: error: `int SigC::Signal0()'
>     redeclared as different kind of symbol
> /usr/include/sigc++-1.2/sigc++/signal.h:144: error: previous declaration 
> of `
>     template<class R, class Marsh> class SigC::Signal0'
> /usr/include/sigc++-1.2/sigc++/signal.h:144: error: previous non-function
>     declaration `template<class R, class Marsh> class SigC::Signal0'
> /usr/include/sigc++-1.2/sigc++/signal.h:175: error: conflicts with
> function
>     declaration `int SigC::Signal0()'
> /usr/include/sigc++-1.2/sigc++/signal.h:175: error: only constructors 
> take base
>     initializers
> /usr/include/sigc++-1.2/sigc++/signal.h:176: confused by earlier errors, 
> bailing out
> 
> 
> 
> -------------------------------------------------------
> The SF.Net email is sponsored by EclipseCon 2004
> Premiere Conference on Open Tools Development and Integration
> See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
> http://www.eclipsecon.org/osdn 
> _______________________________________________
> Config4gnu-developer mailing list
> Config4gnu-developer-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org 
> https://lists.sourceforge.net/lists/listinfo/config4gnu-developer
> 




-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn