Bonjour,
je suis novice en C et j'ai tenté de "compiler" plusieurs fichiers sans aucun succès avec à chaque fois : [Linker error] undefined reference to `initgn' [Linker error] undefined reference to `printgn' j'ai fait cela avec gcc sous linux (gcc -o main main.c) et avec dev-C++ sous window...même problème, il y a quelque chose que je dois ignorer mais quoi ?
voici mon main.c :
Code :
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "structure.h"
int main(void){
GN nbre;
initgn(&nbre,tmax);
printgn(&nbre);
return 0;
}
mon struct.h
Code :
#define tmax 100
typedefstruct{
int bit[tmax] ; //chiffres
int coma; // virgule
char sg; //signe
int ta; //nombre de chiffres significatifs
}GN;
int printgn(GN*);
int initgn(GN*,int);
mon initgn.c
Code :
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "structure.h"
int initgn(GN *N,int T){
int i;
for(i=0;i<T;i++)
N->bit[i]=0;
N->sg = "+";
N->coma=1;
N->ta=1;
printf("\n%d",T);
return 1;
}
Si quelqu'un a la bonté d'expliquer à un novice ce qui ne va pas...merci d'avance.
Publicité
Posté le 26-01-2008 à 12:25:37
Elmoricq
Modérateur
Posté le 26-01-2008 à 12:38:35
Justement, il faut d'abord compiler tes deux fichiers, et seulement ensuite les linker :
Message édité par Elmoricq le 26-01-2008 à 12:38:52
cuati
Posté le 26-01-2008 à 12:52:22
Merci infiniment pout ta réponse rapide !
En plus ça marche et je crois que j'ai compris !!
Encore merci Elmoricq !
Juste une dernière question : y a-t-il une commande pour "linker" plein de fichier ? parce que (je suis faineant) taper gcc -o main "puis tous les trucs .o" ça peut être long si il y en a plein
djobidjoba
Posté le 26-01-2008 à 13:19:01
gcc -o main *.c
Message édité par djobidjoba le 26-01-2008 à 13:21:14
cuati
Posté le 26-01-2008 à 13:28:31
Bonjour,
et merci, j'aurais dû m'en douter...gcc -o main *.o
Ace17
Posté le 26-01-2008 à 13:49:01
Tu peux aussi faire un makefile hein! Ca t'evitera de tout recompiler a chaque fois...
cuati
Posté le 26-01-2008 à 13:58:04
Un makefile ??? j'ai cherché sur le forum, je ne sais pas du tout ce que c'est...tu n'aurais pas lien internet qui explique ce que c'est et comment ca marche s'il te plait?
Un makefile ??? j'ai cherché sur le forum, je ne sais pas du tout ce que c'est...tu n'aurais pas lien internet qui explique ce que c'est et comment ca marche s'il te plait?