Re: [sigc] static compile error



So you use gcc 4.7.1. I found the following entry in its NEWS file:

     * Avoid polluting the global namespace and do not include <unistd.h>.

I haven't installed gcc 4.7 (I use gcc 4.6.3 in Ubuntu 12.04), but I looked at some of the header files of its libstdc++ standard library. Probably a lot of stuff that the header files cxxxxx (e.g. cstddef, cctype, cstring) previously put in both namesapce std and in the global namespace is now put only in namespace std.

This is a very reasonable change between gcc 4.6 and 4.7 that will break the builds of several modules, not just libsigc++. Glibmm and gtkmm are affected, and probably other modules as well.

Kjell

2012-07-30 15:25, Mohsen Pahlevanzadeh skrev:
Dear Kjell and list,
i again extracted libsigc++2.2.0 and then invoked:
./configure   --prefix=/opt/libsigc++/ --disable-shared
--enable-static;make
the i got:
///////////////////////////////////////////////////////////
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/x/libsigc
++-2.2.0/sigc++'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/mohsen/Downloads/x/libsigc
++-2.2.0/sigc++'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/mohsen/Downloads/x/libsigc++-2.2.0'
make: *** [all] Error 2
////////////////////////////////////////////////////////////
My distro:
mohsen@debian:~/Downloads/x/libsigc++-2.2.0$ cat /etc/issue
Debian GNU/Linux wheezy/sid \n \l

My compiler:
mohsen@debian:~/Downloads/x/libsigc++-2.2.0$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i486-linux-gnu/4.7/lto-wrapper
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.7.1-5'
--with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs
--enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.7 --enable-shared --enable-linker-build-id
--with-system-zlib --libexecdir=/usr/lib --without-included-gettext
--enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7
--libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes
--enable-gnu-unique-object --enable-plugin --enable-objc-gc
--enable-targets=all --with-arch-32=i586 --with-tune=generic
--enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu
--target=i486-linux-gnu
Thread model: posix
gcc version 4.7.1 (Debian 4.7.1-5)


On Sun, 2012-07-29 at 16:57 +0200, Kjell Ahlstedt wrote:
./configure --prefix=/opt/libsigc++/ --disable-shared --enable-static



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]