Voilà, j’aimerais bien compiler libsigc+±2.0.17 sur une machine, donc logiquement j’ai fait
oooooo@ble:~$ curl -o libsigc++-2.0.17.tar.gz http://ftp.gnome.org/pub/GNOME/sources/libsigc++/2.0/libsigc++-2.0.17.tar.gz
oooooo@ble:~$ tar -zxvf libsigc++-2.0.17.tar.gz
oooooo@mais:~$ cd libsigc++-2.0.17/
oooooo@mais:~/libsigc++-2.0.17$ ./configure --prefix=/home/oooooo/lib/libsigc
oooooo@mais:~/libsigc++-2.0.17$ make
make all-recursive
make[1]: Entering directory `/home/oooooo/libsigc++-2.0.17'
Making all in sigc++
make[2]: Entering directory `/home/oooooo/libsigc++-2.0.17/sigc++'
make all-am
make[3]: Entering directory `/home/oooooo/libsigc++-2.0.17/sigc++'
if /bin/sh ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I.. -I.. -g -O2 -MT signal_base.lo -MD -MP -MF ".deps/signal_base.Tpo" -c -o signal_base.lo signal_base.cc; \
then mv -f ".deps/signal_base.Tpo" ".deps/signal_base.Plo"; else rm -f ".deps/signal_base.Tpo"; exit 1; fi
g++ -DHAVE_CONFIG_H -I.. -I.. -g -O2 -MT signal_base.lo -MD -MP -MF .deps/signal_base.Tpo -c signal_base.cc -fPIC -DPIC -o .libs/signal_base.o
In file included from signal.h:10,
from /usr/include/pthread.h:24,
from /usr/include/c++/3.3/i486-linux/bits/gthr-default.h:37,
from /usr/include/c++/3.3/i486-linux/bits/gthr.h:98,
from /usr/include/c++/3.3/i486-linux/bits/c++io.h:37,
from /usr/include/c++/3.3/bits/fpos.h:44,
from /usr/include/c++/3.3/iosfwd:49,
from /usr/include/c++/3.3/bits/stl_algobase.h:70,
from /usr/include/c++/3.3/list:67,
from ../sigc++/signal_base.h:24,
from signal_base.cc:20:
../sigc++/trackable.h:76: error: template-id `
list<sigc::internal::trackable_callback>' used as a declarator
../sigc++/trackable.h:76: error: parse error before `;' token
../sigc++/trackable.h:77: error: 'callback_list' is used as a type, but is not
defined as a type.
In file included from /usr/include/pthread.h:24,
from /usr/include/c++/3.3/i486-linux/bits/gthr-default.h:37,
from /usr/include/c++/3.3/i486-linux/bits/gthr.h:98,
from /usr/include/c++/3.3/i486-linux/bits/c++io.h:37,
from /usr/include/c++/3.3/bits/fpos.h:44,
from /usr/include/c++/3.3/iosfwd:49,
from /usr/include/c++/3.3/bits/stl_algobase.h:70,
from /usr/include/c++/3.3/list:67,
from ../sigc++/signal_base.h:24,
from signal_base.cc:20:
signal.h:35: error: parse error before `;' token
signal.h:43: error: `signal_impl' is not a class or namespace
signal.h:43: error: `iterator_type' is not a class or namespace
signal.h:49: confused by earlier errors, bailing out
make[3]: *** [signal_base.lo] Error 1
make[3]: Leaving directory `/home/oooooo/libsigc++-2.0.17/sigc++'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/oooooo/libsigc++-2.0.17/sigc++'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/oooooo/libsigc++-2.0.17'
make: *** [all] Error 2
Comme l’erreur vient après l’inclusion de <list> je ne sais pas trop quoi faire …
avec une autre version de libsigc++, ça fait exactement la même chose
accessoirement, je ne suis pas root sur la machine, donc je ne peux pas la mettre à jour.
Pour la version linux utilisée, j’ai :
oooooo@mais:~$ uname -a
Linux mais 2.6.14.3 #2 SMP Mon Jan 2 15:41:24 CET 2006 i686 GNU/Linux