Impossible de compiler GIAC depuis le CVS

Librairie C++ de calcul formel/ C++ symbolic computation library

Modérateur : xcasadmin

Répondre
scls19fr
Messages : 24
Inscription : ven. janv. 27, 2006 3:49 pm
Localisation : POITIERS (86)
Contact :

Impossible de compiler GIAC depuis le CVS

Message par scls19fr » sam. janv. 28, 2006 12:21 am

Bonsoir,

j'ai fait une copie de travail anonyme à l'aide du CVS
http://sourceforge.net/projects/xcas/

(
il serait d'ailleurs bien de le mentionner sur
http://www-fourier.ujf-grenoble.fr/~par ... le_fr.html
)


Je souhaite compiler GIAC.
$ ./configure
loading cache ./config.cache
checking for a BSD compatible install... (cached) /usr/bin/install -c
checking whether build environment is sane... yes
checking whether make sets ${MAKE}... (cached) yes
checking for working aclocal-1.4... found
checking for working autoconf... found
checking for working automake-1.4... found
checking for working autoheader... found
checking for working makeinfo... found
checking size of int... (cached) 4
checking size of long long... (cached) 8
checking for c++... (cached) c++
checking whether the C++ compiler (c++ ) works... yes
checking whether the C++ compiler (c++ ) is a cross-compiler... no
checking whether we are using GNU C++... (cached) yes
checking whether c++ accepts -g... (cached) yes
checking how to run the C++ preprocessor... (cached) c++ -E
checking for a BSD compatible install... /usr/bin/install -c
checking for flex... (cached) flex
checking for flex... (cached) flex
checking for yywrap in -lfl... (cached) yes
checking lex output file root... (cached) lex.yy
checking whether yytext is a pointer... (cached) yes
checking for bison... (cached) bison -y
checking for Cygwin environment... (cached) no
checking for mingw32 environment... (cached) no
checking host system type... i686-pc-linux-gnu
checking build system type... i686-pc-linux-gnu
checking for gcc... (cached) gcc
checking whether the C compiler (gcc ) works... yes
checking whether the C compiler (gcc ) is a cross-compiler... no
checking whether we are using GNU C... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for ld used by GCC... (cached) /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... (cached) yes
checking for /usr/bin/ld option to reload object files... (cached) -r
checking for BSD-compatible nm... (cached) /usr/bin/nm -B
checking for a sed that does not truncate output... (cached) /bin/sed
checking whether ln -s works... (cached) yes
checking how to recognise dependent libraries... (cached) pass_all
checking for object suffix... (cached) o
checking for executable suffix... (cached) .C
checking command to parse /usr/bin/nm -B output... (cached) ok
checking for dlfcn.h... (cached) yes
checking for ranlib... (cached) ranlib
checking for strip... (cached) strip
checking for objdir... .libs
checking for gcc option to produce PIC... (cached) -fPIC
checking if gcc PIC flag -fPIC works... (cached) yes
checking if gcc static flag -static works... (cached) yes
checking if gcc supports -c -o file.o... (cached) no
checking if we can lock with hard links... yes
checking if gcc supports -fno-rtti -fno-exceptions... yes
checking whether the linker (/usr/bin/ld) supports shared libraries... yes
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether -lc should be explicitly linked in... (cached) no
creating libtool
checking host system type... i686-pc-linux-gnu
checking for ranlib... ranlib
checking for gcc... gcc
checking whether we are using GNU C... yes
checking for object suffix... o
checking for executable suffix... no
checking for gcc option to produce PIC... -fPIC
checking if gcc PIC flag -fPIC works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.lo... yes
checking if gcc supports -fno-rtti -fno-exceptions ... no
checking if gcc static flag -static works... -static
checking whether ln -s works... yes
checking for ld used by GCC... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking whether the linker (/usr/bin/ld) supports shared libraries... yes
checking for BSD-compatible nm... /usr/bin/nm -B
checking command to parse /usr/bin/nm -B output... ok
checking how to hardcode library paths into programs... immediate
checking for /usr/bin/ld option to produce relocatable object files... -r
checking dynamic linker characteristics... Linux ld.so
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for objdir... .libs
creating libtool
checking for main in -lm... (cached) yes
checking for dlopen in -ldl... (cached) yes
checking for unistd.h... (cached) yes
checking for readline/readline.h... (cached) yes
checking for readline/history.h... (cached) yes
checking for tgetent... (cached) no
checking for tgetent in -lncurses... (cached) yes
checking for readline in -lreadline... (cached) yes
checking for iostream... (cached) yes
checking for vector... (cached) yes
checking for list... (cached) yes
checking for map... (cached) yes
checking for string... (cached) yes
checking for stdexcept... (cached) yes
checking for algorithm... (cached) yes
checking for main in -lgslcblas... (cached) yes
checking for gsl_sf_gamma in -lgsl... (cached) yes
checking for Cygwin environment... (cached) no
checking for X... (cached) libraries /usr/X11R6/lib, headers
checking for dnet_ntoa in -ldnet... (cached) no
checking for dnet_ntoa in -ldnet_stub... (cached) no
checking for gethostbyname... (cached) yes
checking for connect... (cached) yes
checking for remove... (cached) yes
checking for shmat... (cached) yes
checking for IceConnectionNumber in -lICE... (cached) yes
X libraries found, checking for GUI
checking for main in -lgl... (cached) no
checking for main in -lfltk_gl... (cached) yes
checking for main in -lfltk... (cached) yes
checking for main in -lz... (cached) yes
checking for main in -lpng... (cached) yes
checking for main in -lfltk_images... (cached) yes
checking for main in -lpari... (cached) yes
checking for main in -lntl... (cached) yes
checking for recent enough gmp.h... (cached) yes
checking for working libgmp... (cached) yes
checking for main in -lmpfr... (cached) yes
checking for gnuplot... (cached) /usr/bin/gnuplot
checking for ext/hash_map... (cached) yes
checking for hash_map... (cached) no
checking for sstream... (cached) yes
updating cache ./config.cache
creating ./config.status
creating Makefile
creating src/Makefile
creating include/Makefile
creating check/Makefile
creating debian/Makefile
creating doc/Makefile
creating config.h
config.h is unchanged
===========================================================
=== configure has detected the following install options.
=== Please check the messages below before running "make".
=== If configure was wrong, you can modify config.h and
=== add manually libraries -Lpath -llibname in src/Makefile
=== at the line LIBS =
=== If built seems too long, edit src/Makefile and remove
=== -O2 at the line CXXFLAGS =
=== (for more details see the INSTALL file)

== Enabling debug support

== Disabling gc support

== Disabling semi-classical routines

Configuration done. Now type "make".

$ make
g++ -c -o giac_sym2poly.o -O2 -Iinclude -I. -fPIC -DPIC -MTgiac_sym2poly.o -MF`echo giac_sym2poly.o | sed -e 's,\.o$,.d,'` -MD src/sym2poly.cc
include/global.h: In constructor ‘giac::std_matrix<T>::std_matrix()’:
include/global.h:145: erreur: expected template-name before ‘<’ token
include/global.h:145: erreur: expected `(' before ‘<’ token
include/global.h:145: erreur: expected `{' before ‘<’ token
include/global.h: In constructor ‘giac::std_matrix<T>::std_matrix(int)’:
include/global.h:146: erreur: expected template-name before ‘<’ token
include/global.h:146: erreur: expected `(' before ‘<’ token
include/global.h:146: erreur: expected `{' before ‘<’ token
include/global.h: In constructor ‘giac::std_matrix<T>::std_matrix(int, const giac::dbgprint_vector<T>&)’:
include/global.h:147: erreur: expected template-name before ‘<’ token
include/global.h:147: erreur: expected `(' before ‘<’ token
include/global.h:147: erreur: expected `{' before ‘<’ token
include/global.h: In constructor ‘giac::std_matrix<T>::std_matrix(int, int)’:
include/global.h:148: erreur: expected template-name before ‘<’ token
include/global.h:148: erreur: expected `(' before ‘<’ token
include/global.h:148: erreur: expected `{' before ‘<’ token
include/global.h: In constructor ‘giac::std_matrix<T>::std_matrix(int, int, const T&)’:
include/global.h:149: erreur: expected template-name before ‘<’ token
include/global.h:149: erreur: expected `(' before ‘<’ token
include/global.h:149: erreur: expected `{' before ‘<’ token
include/global.h: In member function ‘giac::std_matrix<T> giac::std_matrix<T>::transpose() const’:
include/global.h:153: erreur: there are no arguments to ‘empty’ that depend on a template parameter, so a declaration of ‘empty’ must be available
include/global.h:153: erreur: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
include/global.h:155: erreur: there are no arguments to ‘size’ that depend on a template parameter, so a declaration of ‘size’ must be available
include/global.h:156: erreur: there are no arguments to ‘front’ that depend on a template parameter, so a declaration of ‘front’ must be available
include/global.h:158: erreur: there are no arguments to ‘begin’ that depend on a template parameter, so a declaration of ‘begin’ must be available
make: *** [giac_sym2poly.o] Erreur 1


Je suis sur GNU/Linux Ubuntu Breezy

Merci de m'aider

Cordialement

parisse
Messages : 5743
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Message par parisse » sam. janv. 28, 2006 9:41 am

quelle version de gcc utilisez-vous?
je n'ai pas de problemes avec std_matrix<T> avec gcc 3.3.
Mais il y a peut-etre un pb de syntaxe qui n'est pas detecte avec gcc 3.3.
Peut-etre que le code suivant marchera
template <class T> class std_matrix: public std::vector< dbgprint_vector<T> > {
public:
// inherited constructors
std_matrix() : std::vector< dbgprint_vector<T> >::vector() { };
std_matrix(int i) : std::vector< dbgprint_vector<T> >::vector(i) { };
std_matrix(int i,const dbgprint_vector<T> & v) : std::vector< dbgprint_vector<T> >::vector(i,v) { };
std_matrix(int i,int j) : std::vector< dbgprint_vector<T> >::vector(i,dbgprint_vector<T>(j)) { };
std_matrix(int i,int j,const T & t) : std::vector< dbgprint_vector<T> >::vector(i,dbgprint_vector<T>(j,t)) { };
// ~dbgprint_vector() { };
// inherited destructors
std_matrix<T> transpose() const {
if (std::vector< dbgprint_vector<T> >::empty())
return *this;
int n=std::vector< dbgprint_vector<T> >::size();
int m=std::vector< dbgprint_vector<T> >::front().dbgprint_vector<T>::size();
std_matrix<T> res(m,n);
typename std_matrix<T>::const_iterator it=std::vector< dbgprint_vector<T> >::begin();
for (int i=0;i<n;++i,++it){
for (int j=0;j<m;++j)
res[j]=(*it)[j];
}
return res;
}
void dbgprint() { std::cout << *this << std::endl; }
};

Invité

Message par Invité » sam. janv. 28, 2006 2:44 pm

$ gcc --version
gcc (GCC) 4.0.2 20050808 (prerelease) (Ubuntu 4.0.1-4ubuntu9)
Copyright © 2005 Free Software Foundation, Inc.
Ce logiciel est libre; voir les sources pour les conditions de copie. Il n'y a PAS
GARANTIE; ni implicite pour le MARCHANDAGE ou pour un BUT PARTICULIER.


c'est marrant la traduction française de gcc !!!

$ LC_ALL=en_GB gcc --version
gcc (GCC) 4.0.2 20050808 (prerelease) (Ubuntu 4.0.1-4ubuntu9)
Copyright (C) 2005 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

scls19fr
Messages : 24
Inscription : ven. janv. 27, 2006 3:49 pm
Localisation : POITIERS (86)
Contact :

Message par scls19fr » sam. janv. 28, 2006 2:59 pm

ça semble compiler maintenant sans problème (enfin c'est en train de compiler, c'est long mais ça ne plante pas comme précedemment).

Vous pouvez faire un commit sur le CVS...

et moi je fais quoi sur ma copie anonyme ?

Je dois effacer le fichier et faire un cvs update ?
ou il y a plus malin
en fait j'utilise depuis peu Subversion
et j'avais très peu touché à CVS auparant donc j'hésite un peu...

scls19fr
Messages : 24
Inscription : ven. janv. 27, 2006 3:49 pm
Localisation : POITIERS (86)
Contact :

Message par scls19fr » sam. janv. 28, 2006 4:13 pm

et bien non... ça ne compile pas

$ make
g++ -c -o giac_pari.o -O2 -Iinclude -I. -fPIC -DPIC -MTgiac_pari.o -MF`echo giac_pari.o | sed -e 's,\.o$,.d,'` -MD src/pari.cc
/usr/include/pari/pariinl.h: In function ‘long int smodis(long int*, long int)’:
/usr/include/pari/pariinl.h:458: erreur: call of overloaded ‘abs(long int&)’ is ambiguous
/usr/include/stdlib.h:778: note: candidats sont: int abs(int)
src/pari.cc:27: note: long int abs(long int&)
/usr/include/c++/4.0.2/cmath:96: note: long double std::abs(long double)
/usr/include/c++/4.0.2/cmath:92: note: float std::abs(float)
/usr/include/c++/4.0.2/cmath:88: note: double std::abs(double)
/usr/include/c++/4.0.2/cstdlib:169: note: long long int __gnu_cxx::abs(long long int)
/usr/include/c++/4.0.2/cstdlib:130: note: long int std::abs(long int)
/usr/include/pari/pariinl.h: In function ‘long int* stosmall(long int)’:
/usr/include/pari/pariinl.h:500: erreur: call of overloaded ‘abs(long int&)’ is ambiguous
/usr/include/stdlib.h:778: note: candidats sont: int abs(int)
src/pari.cc:27: note: long int abs(long int&)
/usr/include/c++/4.0.2/cmath:96: note: long double std::abs(long double)
/usr/include/c++/4.0.2/cmath:92: note: float std::abs(float)
/usr/include/c++/4.0.2/cmath:88: note: double std::abs(double)
/usr/include/c++/4.0.2/cstdlib:169: note: long long int __gnu_cxx::abs(long long int)
/usr/include/c++/4.0.2/cstdlib:130: note: long int std::abs(long int)
/usr/include/pari/pariinl.h: In function ‘long int* divss(long int, long int)’:
/usr/include/pari/pariinl.h:708: erreur: call of overloaded ‘abs(long int&)’ is ambiguous
/usr/include/stdlib.h:778: note: candidats sont: int abs(int)
src/pari.cc:27: note: long int abs(long int&)
/usr/include/c++/4.0.2/cmath:96: note: long double std::abs(long double)
/usr/include/c++/4.0.2/cmath:92: note: float std::abs(float)
/usr/include/c++/4.0.2/cmath:88: note: double std::abs(double)
/usr/include/c++/4.0.2/cstdlib:169: note: long long int __gnu_cxx::abs(long long int)
/usr/include/c++/4.0.2/cstdlib:130: note: long int std::abs(long int)
/usr/include/pari/pariinl.h:708: erreur: call of overloaded ‘abs(long int&)’ is ambiguous
/usr/include/stdlib.h:778: note: candidats sont: int abs(int)
src/pari.cc:27: note: long int abs(long int&)
/usr/include/c++/4.0.2/cmath:96: note: long double std::abs(long double)
/usr/include/c++/4.0.2/cmath:92: note: float std::abs(float)
/usr/include/c++/4.0.2/cmath:88: note: double std::abs(double)
/usr/include/c++/4.0.2/cstdlib:169: note: long long int __gnu_cxx::abs(long long int)
/usr/include/c++/4.0.2/cstdlib:130: note: long int std::abs(long int)


mais là c'est quand même surprenant c'est un problème avec PARI


...

Je récupère PARI via
$ cvs -z3 -d :pserver:cvs@pari.math.u-bordeaux.fr:/home/cvs checkout
pari

$ ./configure
$ make all
$ su
# make install



et j'ai maintenant un problème avec GIAC

$ make
g++ -c -o giac_pari.o -O2 -Iinclude -I. -fPIC -DPIC -MTgiac_pari.o -MF`echo giac_pari.o | sed -e 's,\.o$,.d,'` -MD src/pari.cc
touch doc/es/giac_es.html && makeinfo --html --no-split doc/es/giac_es.texinfo
touch doc/en/giac_us.html && makeinfo --html --no-split doc/en/giac_us.texinfo
g++ -shared -fPIC -o libgiac.so giac_sym2poly.o giac_gausspol.o giac_moyal.o giac_maple.o giac_ti89.o giac_mathml.o giac_misc.o giac_permu.o giac_quater.o giac_desolve.o giac_input_parser.o giac_symbolic.o giac_index.o giac_modpoly.o giac_modfactor.o giac_ezgcd.o giac_derive.o giac_solve.o giac_intg.o giac_risch.o giac_lin.o giac_series.o giac_subst.o giac_vecteur.o giac_tex.o giac_global.o giac_ifactor.o giac_alg_ext.o giac_gauss.o giac_isom.o giac_plot.o giac_help.o giac_rpn.o giac_prog.o giac_pari.o giac_unary.o giac_usual.o giac_identificateur.o giac_gen.o giac_input_lexer.o giac_first.o -lgmp -lreadline -lmpfr
g++ -c -o cas_cas.o -O2 -Iinclude -I. -MTcas_cas.o -MF`echo cas_cas.o | sed -e 's,\.o$,.d,'` -MD src/cas.cc
src/cas.cc: In function ‘void texmacs_output(const giac::gen&, const giac::gen&, bool, int)’:
include/tex.h:33: erreur: too few arguments to function ‘std::string giac::gen2tex(const giac::gen&, const giac::context*)’
src/cas.cc:499: erreur: à ce point dans le fichier
src/cas.cc: In function ‘int main(int, char**)’:
include/tex.h:33: erreur: too few arguments to function ‘std::string giac::gen2tex(const giac::gen&, const giac::context*)’
src/cas.cc:1310: erreur: à ce point dans le fichier
include/tex.h:33: erreur: too few arguments to function ‘std::string giac::gen2tex(const giac::gen&, const giac::context*)’
src/cas.cc:1316: erreur: à ce point dans le fichier
include/tex.h:33: erreur: too few arguments to function ‘std::string giac::gen2tex(const giac::gen&, const giac::context*)’
src/cas.cc:1354: erreur: à ce point dans le fichier
include/tex.h:33: erreur: too few arguments to function ‘std::string giac::gen2tex(const giac::gen&, const giac::context*)’
src/cas.cc:1356: erreur: à ce point dans le fichier
make: *** [cas_cas.o] Erreur 1

parisse
Messages : 5743
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Message par parisse » dim. janv. 29, 2006 8:46 am

oups, c'est normal, car le fichier a compiler devrait etre icas.cc, de fait je me sers du CVS sur sourceforge uniquement comme d'une sauvegarde et je n'ai pas mis a jour ni icas.cc ni le Makefile.am. Le plus sur serait de directement prendre giac-0.5.1.tar.gz sur mon site et (apres la modif dans global.h) tout devrait compiler, j'espere...
Je ferai un jour un update bien propre sur sourceforge, mais je n'ai pas le temps en ce moment...

Invité

Message par Invité » dim. janv. 29, 2006 9:46 am

D'accord... je pense avoir compris votre organisation

en fait vous avez un CVS en local...
de temps en temps vous faites un .tar.gz des sources que vous mettez sur le FTP...
et occasionnellement vous faites un commit sur le CVS de Sourceforge...

c'est dommage de ne pas travailler directement sur le CVS de Sourceforge...
(d'ailleurs ça me fait penser que Sourceforge va bientôt passer à Subversion... qui est bien plus pratique pour le renommage des fichiers, le déplacement de répertoires, etc...)

http://www.google.com/search?q=sourceforge+subversion
https://sourceforge.net/docman/display_ ... c_projects

parisse
Messages : 5743
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Message par parisse » dim. janv. 29, 2006 5:22 pm

non, en fait je travaille directement sur l'arborescence de giac et xcas mélangés (cf. l'archive de mon site), et je copie les fichiers modifiés dans l'arborescence CVS. Je pense que j'utiliserai directement le CVS lorsque giac/xcas sera suffisament stabilisé...ou s'il se présente des contributeurs exterieurs au code.
Notez aussi que la nouvelle interface ne peut pas etre compilee a partir du CVS, je n'ai pas encore fait les Makefile pour.

scls19fr
Messages : 24
Inscription : ven. janv. 27, 2006 3:49 pm
Localisation : POITIERS (86)
Contact :

Message par scls19fr » dim. janv. 29, 2006 6:52 pm

Pourquoi ne pas séparer clairement les deux ?
Il faudrait même séparer la lib, l'interface xcas classique, l'interface xcasnew et la l'interface ligne de commande.


Car justement j'ai un problème à la compil... (Toujours gcc 4)

En fait c'est FLVW qui ne compile pas avec gcc 4 (même en prenant la version cvs de FLVW)

$ make
=== making src ===
make[1]: entrant dans le répertoire « /home/scls/src/flvw/flvw/1.0/src »
Compiling Flv_Style.cxx...
../FL/Flv_Style.H:111: erreur: une clé de classe doit être utilise lors de la déclaration d'un ami
../FL/Flv_Style.H:111: erreur: déclaration amie ne nomme pas une classe ou une fonction
../FL/Flv_Style.H:174: erreur: ISO C++ forbids declaration of ‘Fl_Font’ with no type
../FL/Flv_Style.H:174: erreur: expected ‘;’ before ‘&’ token
../FL/Flv_Style.H:176: erreur: ISO C++ forbids declaration of ‘Fl_Font’ with no type
../FL/Flv_Style.H:176: erreur: expected ‘;’ before ‘&’ token
../FL/Flv_Style.H:258: erreur: ‘Fl_Font’ does not name a type
Flv_Style.cxx:195: erreur: expected initializer before ‘&’ token
Flv_Style.cxx: In member function ‘const Flv_Style& Flv_Style::operator=(const Flv_Style&)’:
Flv_Style.cxx:434: erreur: ‘const class Flv_Style’ has no member named ‘vfont’
Flv_Style.cxx:434: erreur: ‘font’ was not declared in this scope
Flv_Style.cxx: In member function ‘Flv_Style* Flv_Style_List::find(int)’:
../FL/Flv_Style.H:242: erreur: ‘int Flv_Style::value() const’ is protected
Flv_Style.cxx:560: erreur: à l'intérieur du contexte
../FL/Flv_Style.H:242: erreur: ‘int Flv_Style::value() const’ is protected
Flv_Style.cxx:573: erreur: à l'intérieur du contexte
../FL/Flv_Style.H:242: erreur: ‘int Flv_Style::value() const’ is protected
Flv_Style.cxx:579: erreur: à l'intérieur du contexte
Flv_Style.cxx: In member function ‘bool Flv_Style_List::insert(Flv_Style*)’:
../FL/Flv_Style.H:242: erreur: ‘int Flv_Style::value() const’ is protected
Flv_Style.cxx:615: erreur: à l'intérieur du contexte
../FL/Flv_Style.H:242: erreur: ‘int Flv_Style::value() const’ is protected
Flv_Style.cxx:616: erreur: à l'intérieur du contexte
../FL/Flv_Style.H:242: erreur: ‘int Flv_Style::value() const’ is protected
Flv_Style.cxx:616: erreur: à l'intérieur du contexte
../FL/Flv_Style.H:242: erreur: ‘int Flv_Style::value() const’ is protected
Flv_Style.cxx:618: erreur: à l'intérieur du contexte
../FL/Flv_Style.H:242: erreur: ‘int Flv_Style::value() const’ is protected
Flv_Style.cxx:618: erreur: à l'intérieur du contexte
Flv_Style.cxx: In member function ‘Flv_Style* Flv_Style_List::skip_to(int)’:
../FL/Flv_Style.H:242: erreur: ‘int Flv_Style::value() const’ is protected
Flv_Style.cxx:699: erreur: à l'intérieur du contexte
../FL/Flv_Style.H:242: erreur: ‘int Flv_Style::value() const’ is protected
Flv_Style.cxx:705: erreur: à l'intérieur du contexte
Flv_Style.cxx: In member function ‘Flv_Style& Flv_Style_List::operator[](int)’:
../FL/Flv_Style.H:244: erreur: ‘int Flv_Style::value(int)’ is protected
Flv_Style.cxx:731: erreur: à l'intérieur du contexte
make[1]: *** [Flv_Style.o] Erreur 1
make[1]: quittant le répertoire « /home/scls/src/flvw/flvw/1.0/src »
=== making test ===
make[1]: entrant dans le répertoire « /home/scls/src/flvw/flvw/1.0/test »
make[1]: *** Pas de règle pour fabriquer la cible « ../lib/libflvw.a », nécessaire pour « testlist ». Arrêt.
make[1]: quittant le répertoire « /home/scls/src/flvw/flvw/1.0/test »
make: *** [all] Erreur 2


Et pour giac
$ make
make all-recursive
make[1]: entrant dans le répertoire « /home/scls/src/giac_ftp/giac-0.5.1 »
Making all in src
make[2]: entrant dans le répertoire « /home/scls/src/giac_ftp/giac-0.5.1/src »
/bin/sh ../libtool --mode=link g++ -g -O2 -o icas -L../src/.libs icas.o -lgiac -lgmp -lmpfr -lpthread -lntl -lpari -lfltk_images -ljpeg -lpng -lz -lfltk -lfltk_gl -lgsl -lgslcblas -lreadline -lncurses -ldl -lm -L/usr/X11R6/lib -lX11 -lgmp
g++ -g -O2 -o icas -L../src/.libs icas.o -lgiac -lgmp -lmpfr -lpthread -lntl -lpari -lfltk_images -ljpeg -lpng -lz -lfltk -lfltk_gl -lgsl -lgslcblas -lreadline -lncurses -ldl -lm -L/usr/X11R6/lib -lX11 -lgmp
icas.o: In function `set_view_point(int, char**)':
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:263: undefined reference to `fltk::Valuator::value(double)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:264: undefined reference to `fltk::Valuator::value(double)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:265: undefined reference to `fltk::Valuator::value(double)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:266: undefined reference to `fltk::Valuator::value(double)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:267: undefined reference to `fltk::Valuator::value(double)'
icas.o:/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:268: more undefined references to `fltk::Valuator::value(double)' follow
icas.o: In function `set_view_point(int, char**)':
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:276: undefined reference to `fltk::Widget::show()'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:277: undefined reference to `fltk::Window::show()'
icas.o: In function `cb_Rot_z_minus':
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:254: undefined reference to `fltk::Valuator::value(double)'
icas.o: In function `cb_Adjust_window':
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:226: undefined reference to `fltk::Valuator::value(double)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:227: undefined reference to `fltk::Valuator::value(double)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:228: undefined reference to `fltk::Valuator::value(double)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:229: undefined reference to `fltk::Valuator::value(double)'
icas.o:/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:233: more undefined references to `fltk::Valuator::value(double)' follow
icas.o: In function `Fl_Window':
/usr/local/include/FL/Fl_Window.H:14: undefined reference to `fltk::Window::Window(int, int, char const*)'
icas.o: In function `begin':
/usr/local/include/fltk/Group.h:46: undefined reference to `fltk::Group::current_'
icas.o: In function `Fl_Group':
/usr/local/include/FL/Fl_Group.H:11: undefined reference to `fltk::Group::Group(int, int, int, int, char const*, bool)'
icas.o: In function `begin':
/usr/local/include/fltk/Group.h:46: undefined reference to `fltk::Group::current_'
icas.o: In function `main':
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:583: undefined reference to `fltk::SHADOW_BOX'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:583: undefined reference to `fltk::Widget::box(fltk::Symbol*)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:584: undefined reference to `fltk::Widget::color(unsigned int)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:585: undefined reference to `fltk::NO_LABEL'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:585: undefined reference to `fltk::Widget::labeltype(fltk::LabelType*)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:586: undefined reference to `fltk::Widget::labelsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:587: undefined reference to `fltk::ValueInput::ValueInput(int, int, int, int, char const*)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:588: undefined reference to `fltk::Widget::labelsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:591: undefined reference to `fltk::Valuator::value(double)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:592: undefined reference to `fltk::Widget::textsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:594: undefined reference to `fltk::ValueInput::ValueInput(int, int, int, int, char const*)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:595: undefined reference to `fltk::Widget::labelsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:598: undefined reference to `fltk::Valuator::value(double)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:599: undefined reference to `fltk::Widget::textsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:601: undefined reference to `fltk::ValueInput::ValueInput(int, int, int, int, char const*)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:602: undefined reference to `fltk::Widget::labelsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:605: undefined reference to `fltk::Valuator::value(double)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:606: undefined reference to `fltk::Widget::textsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:608: undefined reference to `fltk::ValueInput::ValueInput(int, int, int, int, char const*)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:609: undefined reference to `fltk::Widget::labelsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:612: undefined reference to `fltk::Valuator::value(double)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:613: undefined reference to `fltk::Widget::textsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:615: undefined reference to `fltk::ValueInput::ValueInput(int, int, int, int, char const*)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:616: undefined reference to `fltk::Widget::labelsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:619: undefined reference to `fltk::Valuator::value(double)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:620: undefined reference to `fltk::Widget::textsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:622: undefined reference to `fltk::ValueInput::ValueInput(int, int, int, int, char const*)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:623: undefined reference to `fltk::Widget::labelsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:626: undefined reference to `fltk::Valuator::value(double)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:627: undefined reference to `fltk::Widget::textsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:629: undefined reference to `fltk::ValueInput::ValueInput(int, int, int, int, char const*)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:630: undefined reference to `fltk::Widget::labelsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:633: undefined reference to `fltk::Valuator::value(double)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:634: undefined reference to `fltk::Widget::textsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:636: undefined reference to `fltk::ValueInput::ValueInput(int, int, int, int, char const*)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:637: undefined reference to `fltk::Widget::labelsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:640: undefined reference to `fltk::Valuator::value(double)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:641: undefined reference to `fltk::Widget::textsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:643: undefined reference to `fltk::ValueInput::ValueInput(int, int, int, int, char const*)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:644: undefined reference to `fltk::Widget::labelsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:647: undefined reference to `fltk::Valuator::value(double)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:648: undefined reference to `fltk::Widget::textsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:650: undefined reference to `fltk::ValueInput::ValueInput(int, int, int, int, char const*)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:651: undefined reference to `fltk::Widget::labelsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:654: undefined reference to `fltk::Valuator::value(double)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:655: undefined reference to `fltk::Widget::textsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:657: undefined reference to `fltk::ValueInput::ValueInput(int, int, int, int, char const*)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:658: undefined reference to `fltk::Widget::labelsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:661: undefined reference to `fltk::Valuator::value(double)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:662: undefined reference to `fltk::Widget::textsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:664: undefined reference to `fltk::ValueInput::ValueInput(int, int, int, int, char const*)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:665: undefined reference to `fltk::Widget::labelsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:668: undefined reference to `fltk::Valuator::value(double)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:669: undefined reference to `fltk::Widget::textsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:671: undefined reference to `fltk::ReturnButton::ReturnButton(int, int, int, int, char const*)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:672: undefined reference to `fltk::Widget::labelsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:675: undefined reference to `fltk::Button::Button(int, int, int, int, char const*)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:676: undefined reference to `fltk::Widget::labelsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:679: undefined reference to `fltk::CheckButton::CheckButton(int, int, int, int, char const*)'
icas.o: In function `down_box':
/usr/local/include/fltk/Widget.h:263: undefined reference to `fltk::DIAMOND_DOWN_BOX'
/usr/local/include/fltk/Widget.h:263: undefined reference to `fltk::Widget::box(fltk::Symbol*)'
icas.o: In function `main':
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:681: undefined reference to `fltk::Button::value(bool)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:682: undefined reference to `fltk::Widget::selection_color(unsigned int)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:683: undefined reference to `fltk::Widget::labelsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:686: undefined reference to `fltk::Button::Button(int, int, int, int, char const*)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:687: undefined reference to `fltk::Widget::labelsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:690: undefined reference to `fltk::Button::Button(int, int, int, int, char const*)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:691: undefined reference to `fltk::Widget::labelsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:694: undefined reference to `fltk::ValueInput::ValueInput(int, int, int, int, char const*)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:695: undefined reference to `fltk::Widget::labelsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:697: undefined reference to `fltk::Valuator::value(double)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:698: undefined reference to `fltk::Widget::textsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:701: undefined reference to `fltk::ValueInput::ValueInput(int, int, int, int, char const*)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:702: undefined reference to `fltk::Widget::labelsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:704: undefined reference to `fltk::Valuator::value(double)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:705: undefined reference to `fltk::Widget::textsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:708: undefined reference to `fltk::Button::Button(int, int, int, int, char const*)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:709: undefined reference to `fltk::Widget::labelsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:712: undefined reference to `fltk::Button::Button(int, int, int, int, char const*)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:713: undefined reference to `fltk::Widget::labelsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:716: undefined reference to `fltk::Button::Button(int, int, int, int, char const*)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:717: undefined reference to `fltk::Widget::labelsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:720: undefined reference to `fltk::Button::Button(int, int, int, int, char const*)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:721: undefined reference to `fltk::Widget::labelsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:724: undefined reference to `fltk::ValueInput::ValueInput(int, int, int, int, char const*)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:725: undefined reference to `fltk::Widget::labelsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:728: undefined reference to `fltk::Valuator::value(double)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:729: undefined reference to `fltk::Widget::textsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:732: undefined reference to `fltk::ValueInput::ValueInput(int, int, int, int, char const*)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:733: undefined reference to `fltk::Widget::labelsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:736: undefined reference to `fltk::Valuator::value(double)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:737: undefined reference to `fltk::Widget::textsize(float)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:740: undefined reference to `fltk::Button::Button(int, int, int, int, char const*)'
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:741: undefined reference to `fltk::Widget::labelsize(float)'
icas.o: In function `end':
/usr/local/include/fltk/Group.h:47: undefined reference to `fltk::Group::current_'
icas.o: In function `end':
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:747: undefined reference to `fltk::Group::current_'
icas.o: In function `main':
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:747: undefined reference to `fltk::add_idle(void (*)(void*), void*)'
icas.o: In function `cb_Plot_setup_cancel':
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:218: undefined reference to `fltk::Widget::hide()'
icas.o: In function `set_view_point(int, char**)':
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:278: undefined reference to `fltk::run()'
icas.o: In function `redraw_callback(void*)':
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:283: undefined reference to `fltk::Widget::hide()'
icas.o: In function `cb_Plot_setup_OK':
/home/scls/src/giac_ftp/giac-0.5.1/src/icas.cc:213: undefined reference to `fltk::Widget::hide()'
icas.o:(.gnu.linkonce.r._ZTV9Fl_Window[vtable for Fl_Window]+0x10): undefined reference to `fltk::Window::draw()'
icas.o:(.gnu.linkonce.r._ZTV9Fl_Window[vtable for Fl_Window]+0x14): undefined reference to `fltk::Window::handle(int)'
icas.o:(.gnu.linkonce.r._ZTV9Fl_Window[vtable for Fl_Window]+0x18): undefined reference to `fltk::Window::layout()'
icas.o:(.gnu.linkonce.r._ZTV9Fl_Window[vtable for Fl_Window]+0x1c): undefined reference to `fltk::Window::draw_overlay()'
icas.o:(.gnu.linkonce.r._ZTV9Fl_Window[vtable for Fl_Window]+0x20): undefined reference to `fltk::Window::destroy()'
icas.o:(.gnu.linkonce.r._ZTV9Fl_Window[vtable for Fl_Window]+0x24): undefined reference to `fltk::Window::flush()'
icas.o:(.gnu.linkonce.r._ZTV9Fl_Window[vtable for Fl_Window]+0x28): undefined reference to `fltk::Window::create()'
icas.o:(.gnu.linkonce.r._ZTI9Fl_Window[typeinfo for Fl_Window]+0x8): undefined reference to `typeinfo for fltk::Window'
icas.o:(.gnu.linkonce.r._ZTV8Fl_Group[vtable for Fl_Group]+0x10): undefined reference to `fltk::Group::draw()'
icas.o:(.gnu.linkonce.r._ZTV8Fl_Group[vtable for Fl_Group]+0x14): undefined reference to `fltk::Group::handle(int)'
icas.o:(.gnu.linkonce.r._ZTV8Fl_Group[vtable for Fl_Group]+0x18): undefined reference to `fltk::Group::layout()'
icas.o:(.gnu.linkonce.r._ZTI8Fl_Group[typeinfo for Fl_Group]+0x8): undefined reference to `typeinfo for fltk::Group'
icas.o: In function `~Fl_Window':
/usr/local/include/FL/Fl_Window.H:7: undefined reference to `fltk::Window::~Window()'
/usr/local/include/FL/Fl_Window.H:7: undefined reference to `fltk::Window::~Window()'
icas.o: In function `~Fl_Group':
/usr/local/include/FL/Fl_Group.H:7: undefined reference to `fltk::Group::~Group()'
/usr/local/include/FL/Fl_Group.H:7: undefined reference to `fltk::Group::~Group()'
../src/.libs/libgiac.so: undefined reference to `gp_read_str'
collect2: ld returned 1 exit status


Sinon, je n'ai effectivement pas réussi à compiler la nouvelle interface.
Mais j'ai essayé le binaire mais je n'accroche pas trop... Les screenshot sde wxCas semblait sympa... mais xcasnew est toujours en FLTK ;-(
Sinon avez vous tenté une interface façon Mathcad
http://www.mathcad.com/


Pourquoi ne pas utiliser le CVS ???? ça permet d'observer facilement l'évolution du projet...
---
Sébastien CELLES
http://www.celles.net

parisse
Messages : 5743
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Message par parisse » lun. janv. 30, 2006 8:16 am

Pourquoi ne pas séparer clairement les deux ?
Il faudrait même séparer la lib, l'interface xcas classique, l'interface xcasnew et la l'interface ligne de commande.
Les 2 sont separes, mais dans un meme paquet, c'est juste que je n'ai pas encore eu le temps de faire 2 paquets separes.

Pour la compilation, inutile de compiler FLVW qui n'est plus utilise. Par contre les erreurs que vous avez ensuite semblent etre des problemes d'install de fltk. Il faudrait peut-etre le desinstaller et le reinstaller.
Concernant la nouvelle interface, Xcasnew est beaucoup plus facile a utiliser pour un novice que ne l'est xcas et est assez proche d'un worksheet maple ce qui devrait faciliter son adoption par les collegues, j'ai fait l'experience cette annee avec mes etudiants de deug ca n'a rien a voir! Ensuite le choix de la librairie graphique c'est un peu des gouts et des couleurs, je ne pense pas que ca soit tres important. De toutes facons, je n'ai pas le temps d'apprendre une nouvelle librairie maintenant, je compte plutot me consacrer a l'integration du 3-d pour remplacer gnuplot...
Pour l'usage de CVS, un des freins actuels pour moi c'est que les mises a jour sont trop lentes sur du reseau bas debit.

scls19fr
Messages : 24
Inscription : ven. janv. 27, 2006 3:49 pm
Localisation : POITIERS (86)
Contact :

Message par scls19fr » dim. févr. 05, 2006 5:44 pm

Bonsoir,

Concernant le tracé vous pouvez trouver des choses interessantes avec QtiPlot (licence GPL, utilise QT).

http://soft.proindependent.com/qtiplot.html
http://soft.proindependent.com/plot3D.html

Cordialement
---
Sébastien CELLES
http://www.celles.net

parisse
Messages : 5743
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Message par parisse » mar. févr. 07, 2006 11:48 am

tout depend de ce qui est fait avec qt et ce qui est fait avec opengl. Je ne peux pas reutiliser de code qt. Et il est peu probable que le code opengl soit reutilisable a cause des structures de donnees. Mais on peut toujours s'inspirer d'idees de l'interface...

Répondre