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 :
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 !