librairie GMP (et incompétance...).

Le
Tanguy Briançon
Bonjour,

J'ai télécharger puis installer la librairie gmp
en faisant la trilogie
./configure
make
make install

Puis j'ai fait:

> gcc primes.c primes.o
> gcc: primes.o : Aucun fichier ou dossier de ce type
> [briancon@localhost demos]$ gcc primes.c -o primes.o
> /home/briancon/tmp/ccAUbHqN.o: In function `report':
> primes.c:(.text+0x34): undefined reference to `__gmpz_out_str'
> primes.c:(.text+0x5d): undefined reference to `__gmpz_get_ui'
> primes.c:(.text+0x85): undefined reference to `__gmpz_get_ui'
> /home/briancon/tmp/ccAUbHqN.o: In function `main':

> collect2: ld a retourné 1 code d'état d'exécution

Il doit y avoir un truc idiot j'ai du oublié de faire?

Le début du fichier primes.c
>
> #include <stdlib.h>
> #include <stdio.h>
> #include <string.h>
> #include <math.h>
> #include <assert.h>

puis des commentaires et

#include "gmp.h"

Le programme suivant compile

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <assert.h>
#include "gmp.h"

void main()
{ printf("Hello world");}
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Xavier Roche
Le #24241951
Le 12/02/2012 19:52, Tanguy Briançon a écrit :
gcc primes.c primes.o





Humm, ici, on produit un exécutable du nom de primes.o -- c'est étrange :)

Il vaudrait mieux:
gcc primes.c primes
(produire un exécutable -- il manque un -lgmp probablement ici)
-ou-
gcc -c primes.c -o primes.o
puis gcc -shared -fPIC primes.o -lgmp -o primes

Et je conseillerai d'utiliser au minimum:
-W -Wall
Xavier Roche
Le #24241941
Le 12/02/2012 19:52, Tanguy Briançon a écrit :
gcc primes.c primes.o





Humm, ici, on produit un exécutable du nom de primes.o -- c'est étrange :)

Il vaudrait mieux:
gcc primes.c -lgmp -o primes
(produire un exécutable -- il manque un -lgmp probablement ici)
-ou-
gcc -c primes.c -o primes.o
puis gcc -shared -fPIC primes.o -lgmp -o primes

Et je conseillerai d'utiliser au minimum:
-W -Wall
pour repérer les fautes les plus évidentes dans le code C.
Antoine Leca
Le #24243021
Xavier Roche écrivit :
gcc -c primes.c -o primes.o
puis gcc -shared -fPIC primes.o -lgmp -o primes


^^^^^^^^^^^^^
Pourquoi faut-il ces options, là ?

Chez moi cela construit une DLL avec extension .exe, et l'OS me dit
« primes.exe n'est pas une application valide. »


Antoine
espie
Le #24243141
In article Antoine Leca
Xavier Roche écrivit :
gcc -c primes.c -o primes.o
puis gcc -shared -fPIC primes.o -lgmp -o primes


^^^^^^^^^^^^^
Pourquoi faut-il ces options, là ?

Chez moi cela construit une DLL avec extension .exe, et l'OS me dit
« primes.exe n'est pas une application valide. »



Il ne faut pas, je ne sais pas ce qu'il a fume.
-shared -fPIC, ca sert uniquement a faire des bibliotheques ("shared objects"
chez ELF), et je ne vois pas du tout ce que ca vient faire la.

Perso, ca me fait toujours tout bizarre d'avoir la ligne de gcc dans un
ordre non "traditionnel".

Quasiment tout le monde ecrit
gcc -o primes -O2 -W -Wall primes.c -lgmp
Xavier Roche
Le #24244941
Le 13/02/2012 11:14, Antoine Leca a écrit :
Chez moi cela construit une DLL



Oui, j'étais parti sur la construction d'une lib, autant pour moi.

Ça m'apprendra à ne pas me relire suffisamment :)
Publicité
Poster une réponse
Anonyme