code::blocks vs GMP sous environnement LINUX
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
Code:
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;
} |
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 2 (fonctionnel sous devcpp XP mais PAS sous code::blocks 8.02)
Code:
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;
} |
voilà le log de compil : (notez qu il ne dit pas que la lib gmp.H est introuvable....donc pour moi c'est OK)
Citation:
------------- 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
3-
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
Code:
sudo aptitude install m4
puis :
Citation:
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 !