qtgiac: calcul formel pour application QT
Modérateur : xcasadmin
qtgiac: calcul formel pour application QT
qtgiac est une version de giac prete a etre integree dans un projet qt. Il suffit de desarchiver
http://www-fourier.ujf-grenoble.fr/~par ... qtgiac.tgz puis de lancer qtcreator (ou necessitas) sur le fichier projet test.pro, et de compiler: rien d'autre a installer, l'interface on ne peut plus minimaliste devrait se lancer. Il suffit ensuite de remplacer l'interface minimaliste par une interface ecrite en QT pour pouvoir integrer facilement du calcul formel dans une application QT.
http://www-fourier.ujf-grenoble.fr/~par ... qtgiac.tgz puis de lancer qtcreator (ou necessitas) sur le fichier projet test.pro, et de compiler: rien d'autre a installer, l'interface on ne peut plus minimaliste devrait se lancer. Il suffit ensuite de remplacer l'interface minimaliste par une interface ecrite en QT pour pouvoir integrer facilement du calcul formel dans une application QT.
Re: qtgiac: calcul formel pour application QT
C'est une nouvelle très intéressante que voilà!
J'ai essayé d'importer dans QtCreator le fichier projet mais il y a cette erreur à la compilation.
Une petite aide?
J'ai essayé d'importer dans QtCreator le fichier projet mais il y a cette erreur à la compilation.
Code : Tout sélectionner
/Téléchargements/qtgiac/giac/threaded.h:2627: erreur : 'powmod' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
/Téléchargements/qtgiac/giac/ezgcd.cc:26: In file included from giac/ezgcd.cc:26:0:
/Téléchargements/qtgiac/giac/modpoly.h:128: 'giac::modpoly giac::powmod(const modpoly&, const giac::gen&, const modpoly&, giac::environment*)' declared here, later in the translation unit
/Téléchargements/qtgiac/giac/poly.h:28: In file included from giac/poly.h:28:0,
Re: qtgiac: calcul formel pour application QT
jamais eu cette erreur!
c'est quelle version de gcc?
c'est quelle version de gcc?
Re: qtgiac: calcul formel pour application QT
gcc (GCC) 4.7.0 20120324 (prerelease)
Je suis sous archlinux.
Je suis sous archlinux.
Dernière modification par loic le mer. avr. 04, 2012 5:20 pm, modifié 1 fois.
Re: qtgiac: calcul formel pour application QT
soit c'est parce que c'est un prerelease, soit c'est un durcissement quelconque (peut-etre faut-il ajouter -fpermissive), je ne peux pas fixer ça tant que je n'ai pas accès à la version fautive de gcc (d'autant que le code correspondant compile bien avec les gcc "normaux", avec visual c++ et avec green hills). Peut-etre faut-il ajouter une declaration pour powmod, ou bien échanger quelques fichiers... en tout cas, ça illustre le fait qu'il vaut mieux utiliser un système qui n'est pas à la pointe de la pointe du progrès pour éviter les ennuis:-)
Re: qtgiac: calcul formel pour application QT
Ce pb est éliminé avec le flag -fpermissive effectivement.
Malheureusement, la compil stoppe sur usual.cc
Je ne comprends pas où est le message d'erreur d'ailleurs....
Malheureusement, la compil stoppe sur usual.cc
Code : Tout sélectionner
giac/usual.cc: At global scope:
giac/usual.cc:3806:15: attention : ‘bool giac::tri2_(const char*, const char*)’ defined but not used [-Wunused-function]
make: *** [usual.o] Erreur 1
Re: qtgiac: calcul formel pour application QT
il n'y a pas d'erreur, simplement la fonction n'est pas utilisée et vos réglages (option -Wunused-function) font que make s'arrete.
Re: qtgiac: calcul formel pour application QT
Bon, je commence à regretter d'être à la pointe de la pointe comme vous dites 
En fait, le plantage ne vient pas du message précédent mais plutôt de ça:
Les messages d'erreurs C++ ne me sont toujours pas familiers....

En fait, le plantage ne vient pas du message précédent mais plutôt de ça:
Code : Tout sélectionner
giac/usual.cc:7396:3: error: braces around scalar initializer for type 'giac::alias_gen {aka long long unsigned int}'
Re: qtgiac: calcul formel pour application QT
Je vous conseille d'installer une version anterieure de gcc (quitte a la compiler depuis les sources...).
Re: qtgiac: calcul formel pour application QT
Ok, je viens d'essayer sous une debian (on revient toujours aux valeurs sures ...)
ça marche nickel, je poursuis mes investigations ...
Merci en tout cas pour ce giac sous Qt.
ça marche nickel, je poursuis mes investigations ...
Merci en tout cas pour ce giac sous Qt.
Re: qtgiac: calcul formel pour application QT
Je reviens à la charge
J'ai deux debian, une sous 32 bits et l'autre en 64 bits.
Sur le 32 bits pas de problème à la compilation. En revanche, sur l'autre, je retrouve le même pb qu'avec mon archlinux.
Ce serait possible que ce soit un pb d'architecture??
PS: gcc et g++ en version 4-4.5 ici ....
J'ai deux debian, une sous 32 bits et l'autre en 64 bits.
Sur le 32 bits pas de problème à la compilation. En revanche, sur l'autre, je retrouve le même pb qu'avec mon archlinux.
Code : Tout sélectionner
g++ -c -pipe -O2 -DHAVE_CONFIG_H -DUSE_GMP_REPLACEMENTS -fno-strict-aliasing -Wno-unused-parameter -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -Iqt -Igiac -Ilibtommath -I. -o usual.o giac/usual.cc
giac/usual.cc:7396: error: braces around scalar initializer for type ‘giac::alias_gen’
giac/usual.cc:7396: error: braces around scalar initializer for type ‘giac::alias_gen’
giac/usual.cc:7483: error: braces around scalar initializer for type ‘const giac::alias_gen’
giac/usual.cc:7503: error: braces around scalar initializer for type ‘const giac::alias_gen’
giac/usual.cc:7517: error: braces around scalar initializer for type ‘giac::alias_gen’
giac/usual.cc:7517: error: braces around scalar initializer for type ‘giac::alias_gen’
giac/usual.cc:7524: error: braces around scalar initializer for type ‘const giac::alias_gen’
giac/usual.cc:7531: error: braces around scalar initializer for type ‘const giac::alias_gen’
giac/usual.cc:7537: error: braces around scalar initializer for type ‘const giac::alias_gen’
giac/usual.cc:7555: error: braces around scalar initializer for type ‘const giac::alias_gen’
giac/usual.cc:7561: error: braces around scalar initializer for type ‘const giac::alias_gen’
giac/usual.cc:7567: error: braces around scalar initializer for type ‘const giac::alias_gen’
giac/usual.cc:7573: error: braces around scalar initializer for type ‘const giac::alias_gen’
giac/usual.cc:7579: error: braces around scalar initializer for type ‘const giac::alias_gen’
giac/usual.cc:7585: error: braces around scalar initializer for type ‘const giac::alias_gen’
giac/usual.cc:7591: error: braces around scalar initializer for type ‘const giac::alias_gen’
giac/usual.cc:7595: error: braces around scalar initializer for type ‘const giac::alias_gen’
giac/usual.cc:7601: error: braces around scalar initializer for type ‘const giac::alias_gen’
giac/usual.cc:7604: error: braces around scalar initializer for type ‘const giac::alias_gen’
giac/usual.cc:7610: error: braces around scalar initializer for type ‘const giac::alias_gen’
giac/usual.cc:7613: error: braces around scalar initializer for type ‘const giac::alias_gen’
giac/usual.cc:7619: error: braces around scalar initializer for type ‘const giac::alias_gen’
giac/usual.cc:7622: error: braces around scalar initializer for type ‘const giac::alias_gen’
giac/usual.cc:7628: error: braces around scalar initializer for type ‘const giac::alias_gen’
giac/usual.cc:7634: error: braces around scalar initializer for type ‘const giac::alias_gen’
giac/usual.cc:7656: error: braces around scalar initializer for type ‘const giac::alias_gen’
giac/usual.cc:7662: error: braces around scalar initializer for type ‘const giac::alias_gen’
giac/usual.cc:3806: warning: ‘bool giac::tri2_(const char*, const char*)’ defined but not used
make: *** [usual.o] Erreur 1
PS: gcc et g++ en version 4-4.5 ici ....
Re: qtgiac: calcul formel pour application QT
Oui, il y a un pb en 64 bits, il faudrait reprendre tout le fichier config.h, probablement definir
SMARTPTR64
Changer aussi les longueurs par exemple de LONG a 8
SMARTPTR64
Changer aussi les longueurs par exemple de LONG a 8
Re: qtgiac: calcul formel pour application QT
Concrètement, j'ai passé le long à 8 dans config.h
et rajouté le flag -DSMARTPTR64 dans test.pro
Toujours la même erreur de sortie de compilation
et rajouté le flag -DSMARTPTR64 dans test.pro
Toujours la même erreur de sortie de compilation
Re: qtgiac: calcul formel pour application QT
Ca devrait marcher mieux en ajoutant -DGIAC_GENERIC_CONSTANTS
Re: qtgiac: calcul formel pour application QT
On se rapproche.
Une erreur lors de l'édition des liens:
Une erreur lors de l'édition des liens:
Code : Tout sélectionner
g++ -m64 -Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu -Wl,-O1 -o test Window.o main.o alg_ext.o cocoa.o csturm.o derive.o desolve.o ezgcd.o firstcc.o gauss.o gausspol.o gen.o global.o help.o identificateur.o ifactor.o index.o input_lexer.o input_parser.o intg.o intgab.o isom.o lin.o maple.o mathml.o misc.o modfactor.o modpoly.o moyal.o pari.o permu.o plot.o plot3d.o prog.o quater.o risch.o rpn.o series.o solve.o subst.o sym2poly.o symbolic.o tex.o threaded.o ti89.o tinymt32.o TmpFGLM.o TmpLESystemSolver.o unary.o usual.o vecteur.o bn_error.o bn_fast_mp_invmod.o bn_fast_mp_montgomery_reduce.o bn_fast_s_mp_mul_digs.o bn_fast_s_mp_mul_high_digs.o bn_fast_s_mp_sqr.o bn_mp_2expt.o bn_mp_abs.o bn_mp_add.o bn_mp_add_d.o bn_mp_addmod.o bn_mp_and.o bn_mp_clamp.o bn_mp_clear.o bn_mp_clear_multi.o bn_mp_cmp.o bn_mp_cmp_d.o bn_mp_cmp_mag.o bn_mp_cnt_lsb.o bn_mp_copy.o bn_mp_count_bits.o bn_mp_div.o bn_mp_div_2.o bn_mp_div_2d.o bn_mp_div_3.o bn_mp_div_d.o bn_mp_dr_is_modulus.o bn_mp_dr_reduce.o bn_mp_dr_setup.o bn_mp_exch.o bn_mp_expt_d.o bn_mp_exptmod.o bn_mp_exptmod_fast.o bn_mp_exteuclid.o bn_mp_fread.o bn_mp_fwrite.o bn_mp_gcd.o bn_mp_get_int.o bn_mp_grow.o bn_mp_init.o bn_mp_init_copy.o bn_mp_init_multi.o bn_mp_init_set.o bn_mp_init_set_int.o bn_mp_init_size.o bn_mp_invmod.o bn_mp_invmod_slow.o bn_mp_is_square.o bn_mp_jacobi.o bn_mp_karatsuba_mul.o bn_mp_karatsuba_sqr.o bn_mp_lcm.o bn_mp_lshd.o bn_mp_mod.o bn_mp_mod_2d.o bn_mp_mod_d.o bn_mp_montgomery_calc_normalization.o bn_mp_montgomery_reduce.o bn_mp_montgomery_setup.o bn_mp_mul.o bn_mp_mul_2.o bn_mp_mul_2d.o bn_mp_mul_d.o bn_mp_mulmod.o bn_mp_n_root.o bn_mp_neg.o bn_mp_or.o bn_mp_prime_fermat.o bn_mp_prime_is_divisible.o bn_mp_prime_is_prime.o bn_mp_prime_miller_rabin.o bn_mp_prime_next_prime.o bn_mp_prime_rabin_miller_trials.o bn_mp_prime_random_ex.o bn_mp_radix_size.o bn_mp_radix_smap.o bn_mp_rand.o bn_mp_read_radix.o bn_mp_read_signed_bin.o bn_mp_read_unsigned_bin.o bn_mp_reduce.o bn_mp_reduce_2k.o bn_mp_reduce_2k_l.o bn_mp_reduce_2k_setup.o bn_mp_reduce_2k_setup_l.o bn_mp_reduce_is_2k.o bn_mp_reduce_is_2k_l.o bn_mp_reduce_setup.o bn_mp_rshd.o bn_mp_set.o bn_mp_set_int.o bn_mp_shrink.o bn_mp_signed_bin_size.o bn_mp_sqr.o bn_mp_sqrmod.o bn_mp_sqrt.o bn_mp_sub.o bn_mp_sub_d.o bn_mp_submod.o bn_mp_to_signed_bin.o bn_mp_to_signed_bin_n.o bn_mp_to_unsigned_bin.o bn_mp_to_unsigned_bin_n.o bn_mp_toom_mul.o bn_mp_toom_sqr.o bn_mp_toradix.o bn_mp_toradix_n.o bn_mp_unsigned_bin_size.o bn_mp_xor.o bn_mp_zero.o bn_prime_tab.o bn_reverse.o bn_s_mp_add.o bn_s_mp_exptmod.o bn_s_mp_mul_digs.o bn_s_mp_mul_high_digs.o bn_s_mp_sqr.o bn_s_mp_sub.o bncore.o moc_Window.o -L/usr/lib -lQtGui -lQtCore -lpthread
/usr/bin/ld: prog.o: undefined reference to symbol 'dlclose@@GLIBC_2.2.5'
/usr/bin/ld: note: 'dlclose@@GLIBC_2.2.5' is defined in DSO /lib/libdl.so.2 so try adding it to the linker command line
/lib/libdl.so.2: could not read symbols: Invalid operation
collect2: erreur: ld a retourné 1 code d'état d'exécution
make: *** [test] Erreur 1