Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3213 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Linker en C

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Linker en C

n°1677079
cuati
Posté le 26-01-2008 à 12:25:37  profilanswer
 

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 :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. #include "structure.h"
  5. int main(void){
  6.      GN nbre;
  7.      initgn(&nbre,tmax);
  8.      printgn(&nbre);
  9.      return 0;
  10. }


 mon struct.h

Code :
  1. #define tmax 100
  2. typedef struct{
  3.      int bit[tmax] ; //chiffres
  4.      int coma;       // virgule
  5.      char sg;        //signe
  6.      int ta;         //nombre de chiffres significatifs
  7. }GN;
  8. int printgn(GN*);
  9. int initgn(GN*,int);


 mon initgn.c

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. #include "structure.h"
  5. int initgn(GN *N,int T){
  6.      int i;
  7.      for(i=0;i<T;i++)
  8.    N->bit[i]=0;
  9.      N->sg = "+";
  10.      N->coma=1;
  11.      N->ta=1;
  12.      printf("\n%d",T);
  13.      return 1;
  14. }


Si quelqu'un a la bonté d'expliquer à un novice ce qui ne va pas...merci d'avance.

mood
Publicité
Posté le 26-01-2008 à 12:25:37  profilanswer
 

n°1677081
Elmoricq
Modérateur
Posté le 26-01-2008 à 12:38:35  profilanswer
 

Justement, il faut d'abord compiler tes deux fichiers, et seulement ensuite les linker :

 

gcc -c initgn.c
gcc -c main.c
gcc -o main initgn.o main.o


Message édité par Elmoricq le 26-01-2008 à 12:38:52
n°1677089
cuati
Posté le 26-01-2008 à 12:52:22  profilanswer
 

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

n°1677096
djobidjoba
Posté le 26-01-2008 à 13:19:01  profilanswer
 

gcc -o main *.c
 


Message édité par djobidjoba le 26-01-2008 à 13:21:14
n°1677099
cuati
Posté le 26-01-2008 à 13:28:31  profilanswer
 

Bonjour,
et merci, j'aurais dû m'en douter...gcc -o main *.o

n°1677105
Ace17
Posté le 26-01-2008 à 13:49:01  profilanswer
 

Tu peux aussi faire un makefile hein! Ca t'evitera de tout recompiler a chaque fois...

n°1677107
cuati
Posté le 26-01-2008 à 13:58:04  profilanswer
 

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?

n°1677112
Emmanuel D​elahaye
C is a sharp tool
Posté le 26-01-2008 à 14:02:52  profilanswer
 

cuati a écrit :

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?


http://mapage.noos.fr/emdel/make.htm


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1677189
cuati
Posté le 26-01-2008 à 18:34:32  profilanswer
 

Merci beaucoup Emmanuel Delahaye, très intéressant ce site et clair en plus !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Linker en C

 

Sujets relatifs
comment linker une class as2 avec un mc dynamique ?[C#] [Résolu] Comment communiquer avec une dll c++
[C] Des accolades "just pour le fun" ?Le terrible linker ...
[Linker error] undefined reference to 'IcmpSendEcho@'linker error sur dev CPP avec la librairie tiff
Erreur lancée par le linker[C] impossible d'utiliser les thread sous linux problème de linker
[C] [linker error] undefined reference to ...Linker Error while emitting metadata
Plus de sujets relatifs à : Linker en C


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)