bonjour à tous, je vous expose succinctement mon probleme. :
1 - je programme en général avec DEVC++ sous wintruc, et j'arrive à faire pas mal de choses, y compris à utiliser la lib GMP (gestion et calcul en grands nombres)
2- je cherche à tester CODE::BLOCKS 8.02 sous UBUNTU9.10 que je viens d installer
pour ce faire j'ai (pour faire la meme chose) commencé par tester ce petit programme (qui cherche le min et le max d'une liste et qui tourne tres bien AUSSI sous code::blocks)
code 1 : marche bien en devcpp XP et code::block 8.02 linux
nouvelle etape : je veux tester un prog qui utilise la lib GMP (que j'ai prealablement installée sur ubuntu) (ce prog tourne tres bien sous devcpp en XP):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91 #include <iostream.h> #include <stdio.h> #include<math.h> #include <windows.h> int main(void) { int tab[10]; int nb,i,min,max; printf("nb de donnees??"); scanf("%d",&nb); for (i=0;i<nb;i++) { printf("valeur a entrer:"); scanf("%d",&tab[i]); } //calcul du min min=32767; for (i=0;i<nb;i++) { if (tab[i]<min) { min=tab[i]; } } printf("le min est %d:",min); //calcul du max max=-1; for (i=0;i<nb;i++) { if (tab[i]>max) { max=tab[i]; } } printf("le max est %d:",max); system("pause"); getchar(); return 0; }
code 2 (fonctionnel sous devcpp XP mais PAS sous code::blocks 8.02)
voilà le log de compil : (notez qu il ne dit pas que la lib gmp.H est introuvable....donc pour moi c'est OK)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 //=================================================================// // Fichier principal // //=================================================================// #include <stdio.h> #include <stdlib.h> #include <gmp.h> // Librairie mathématique //=================================================================// // Fonction principale du programme // //=================================================================// int main(int argc, char* argv[]) { int n; mpz_t nbre; // Définit un nombre // mp = multiple precision // z = entier en math // Affiche ce que l'on fait printf("Affichage d'un nombre sous la forme 2^n-1\n"); // Demande et récupère une valeur de n printf("Valeur de n = "); scanf("%d", &n); // Initialise le nbre de mersenne à 2 mpz_init(nbre); // Initialise la variable mpz_add_ui(nbre, nbre, 2); // Place 2 dedans // Calcul 2^n-1 mpz_pow_ui(nbre, nbre, n); // Calcul 2^n mpz_sub_ui(nbre, nbre, 1); // Enlève 1 // Affiche le nombre gmp_printf("%Zd\n", nbre); system("pause"); return 0; }
3-------------- Build: Debug in essai-gmp ---------------
Compiling: main.cpp
Linking console executable: bin/Debug/essai-gmp
obj/Debug/main.o: In function `main':
/home/thebest/Bureau/essai-gmp/main.cpp:27: undefined reference to `__gmpz_init'
/home/thebest/Bureau/essai-gmp/main.cpp:28: undefined reference to `__gmpz_add_ui'
/home/thebest/Bureau/essai-gmp/main.cpp:31: undefined reference to `__gmpz_pow_ui'
/home/thebest/Bureau/essai-gmp/main.cpp:32: undefined reference to `__gmpz_sub_ui'
/home/thebest/Bureau/essai-gmp/main.cpp:35: undefined reference to `__gmp_printf'
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 0 seconds)
5 errors, 0 warnings
VOILA ! il est clair que je ne sais pas compiler mon projet avec la librairie GMP, pourtant je l'ai installée correctement sous UBUNTU (je suis pas un newbie, mais pas non plus un as du mode console) :
mes manips furent les suivantes
puis :
Code : Sélectionner tout - Visualiser dans une fenêtre à part sudo aptitude install m4
cd ~
mkdir RSA
cd RSA
wget http://ftp.sunet.se/pub/gnu/gmp/gmp-4.2.3.tar.gz
tar xfz gmp-4.2.3.tar.gz
cd gmp-4.2.3
./configure --enable-cxx
make
make check
sudo make install
cd ..
rm -rf gmp-4.2.3 gmp-4.2.3.tar.gz
cd /usr/lib/
sudo ln -s /usr/local/lib/libgmpxx.so.4 libgmpxx.so.4
cd ~/RSA
l'install s'est passée impec !!
pourtant je ne trouve pas la lib gmpxx.a ni gmp.a (j'ai cherché dans usr/lib/codeblocks)
donc si qq pouvait m'aider à :
-verifier si la lib est bien ou elle doit etre
-tester mon petit prog et me donner la marche à suivre pour linker , car je pense que mon probleme est la
merci d avance et desolé pour ce post un peu long !
Partager