| 2012-07-29 09:08, Mohsen Pahlevanzadeh
      skrev:
 
      When I try "./configure --disable-shared  --enable-static ......;
    make" with gcc 4.6.3 there are no compilation errors.Dear all,
I  need to compile libsigc as static program into my appl.So, i
configure such as:
./configure   --prefix=/opt/libsigc++/ --disable-shared  --enable-static
But when i use make command, i get the following error:
//////////////////////////////////////////////////////////////////////
In file included from ../sigc++/signal.h:8:0,
                 from signal.cc:20:
../sigc++/signal_base.h:46:11: error: 'size_t' does not name a type
../sigc++/signal_base.h:95:3: error: 'size_type' does not name a type
../sigc++/signal_base.h:239:11: error: 'size_t' does not name a type
../sigc++/signal_base.h:261:3: error: 'size_type' does not name a type
In file included from signal.cc:20:0:
../sigc++/signal.h:33:11: error: 'size_t' does not name a type
../sigc++/signal.h:34:11: error: 'ptrdiff_t' does not name a type
../sigc++/signal.h:99:11: error: 'size_t' does not name a type
../sigc++/signal.h:100:11: error: 'ptrdiff_t' does not name a type
../sigc++/signal.h:276:11: error: 'size_t' does not name a type
../sigc++/signal.h:277:11: error: 'ptrdiff_t' does not name a type
../sigc++/signal.h:359:11: error: 'size_t' does not name a type
../sigc++/signal.h:360:11: error: 'ptrdiff_t' does not name a type
../sigc++/signal.h:430:11: error: 'size_t' does not name a type
../sigc++/signal.h:431:11: error: 'ptrdiff_t' does not name a type
../sigc++/signal.h:515:11: error: 'size_t' does not name a type
../sigc++/signal.h:516:11: error: 'ptrdiff_t' does not name a type
make[3]: *** [signal.lo] Error 1
make[3]: Leaving directory `/home/mohsen/Downloads/eCom tools/libsigc
++-2.2.0/sigc++'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/mohsen/Downloads/eCom tools/libsigc
++-2.2.0/sigc++'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/mohsen/Downloads/eCom tools/libsigc
++-2.2.0'
make: *** [all] Error 2
//////////////////////////////////////////////////////////////////////
How can i solve it?
Yours,
Mohsen.
 But when I look at the source code of sigc++/signal_base.h and
    sigc++/signal.h, I see that it's not correct.
 
 sigc++/signal_base.h contains
 #include <cstddef>
 which shall declare size_t and ptrdiff_t in namespace std. But
    size_t and ptrdiff_t are then used as if they were declared in
    global namespace.
 
 Which compiler do you use? I wonder if you are one of the first
    persons who try to build libsigc++ with a compiler and a standard
    library that don't declare data types in more namespaces than
    required.
 (I think it's like this: <cstddef> must declare size_t
    and ptrdiff_t in namespace std and may also declare them in
    global namespace. <stddef.h> when included in a C++ program, must
    declare size_t and ptrdiff_t in global namespace and may
    also declare them in namespace std.)
 
 You can try changing
 #include <cstddef>
 in sigc++/signal_base.h to
 #include <stddef.h>
 and see if you can build libsigc++.
 
 It would be fine if you could file a bug report. I think a fix in
    libsigc++ is needed.
 
 Do you know that the LGPL license restricts your rights to link
    libsigc++ statically? I don't know all the details. Check with the
    long license text, if in doubt. I think that if you link statically,
    your resulting program or library must be released under the GPL or
    LGPL license.
 
 Kjell
 
 
 |