IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Systèmes de compilation Discussion :

[make] edition du makefile


Sujet :

Systèmes de compilation

  1. #1
    Membre éclairé

    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2012
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 222
    Par défaut [make] edition du makefile
    Bonjour à tous,

    Je me suis lancer dans la programmation sous linux.......
    Je connais assez bien le C et C++ (sous windows)

    Pour lier mes fichier *.c sous linux, j'ai découvert "make"
    Donc je me lance....................................

    Premier makefile :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    prod.e : produit.c main.c produit.h
    	gcc -Wall main.c produit.c produit.h -o prod.e
    dans ma console la commande "make" me repond OK, je teste ./prod, tout fonctionne

    D’où je crée un makefile plus évolue (enfin je crois...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    prod: produit.o main.o 
    	gcc -Wall -o prod -o produit.o main.o -ansi
     
    main.o : main.c produit.h
    	gcc -c -o main.o main.c 
     
    produit.o :produit.c produit.h
    	gcc -c -o produit.o produit.c
     
    clean:
    	rm *.o
    Et là,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    gcc -c -o main.o main.c 
    gcc -Wall -o prod -o produit.o main.o -ansi
    main.o*: Dans la fonction «*main*»*:
    main.c:(.text+0x3c)*: référence indéfinie vers «*produit*»
    collect2: error: ld returned 1 exit status
    makefile:9*: la recette pour la cible «*prod*» a échouée
    make: *** [prod] Erreur 1
    Cela fait deux jours que je cherche, mais je trouve pas de raison.
    les fichier utiliser sont:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    /**********************************************************************/
    /***  fichier: produit.h                                            ***/
    /***  en-tete de produit.c                                          ***/
    /**********************************************************************/
     
    extern int produit(int, int);
     
    /**********************************************************************/
    /***  fichier: produit.c                                            ***/
    /***  produit de 2 entiers                                          ***/
    /**********************************************************************/
    #include "produit.h"
     
    int produit(int a, int b)
    {
      return(a * b);
    }
     
    /**********************************************************************/
    /***  fichier: main.c                                               ***/
    /***  saisit 2 entiers et affiche leur produit                      ***/
    /**********************************************************************/
     
    #include <stdlib.h>
    #include <stdio.h>
    #include "produit.h"
     
    int main(void)
    {
      int a, b, c;
      scanf("%d",&a);
      scanf("%d",&b);
      c = produit(a,b);
      printf("\nle produit vaut %d\n",c);
      return EXIT_SUCCESS;
    }
    SI quelqu'un pouvait me dire ou se trouve le problème....

    Merci

    Pour info, je programme sous raspberry 3+ avec Geany pour l’édition et une session console pour la compilation et les test.

    Michel

  2. #2
    Membre éclairé

    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2012
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 222
    Par défaut Trouvé
    Bonjour à tous,

    en tant que débutant je commet toutes les erreur possibles.
    Dans ce cas ci, j'ai oublié de retirer mes moufles pour taper mon fichier makefile
    et les lunette de soleil pour le relire....

    la ligne :
    cc -Wall -o prod -o produit.o main.o


    n'est pas bonne.

    avec le -o supplémentaire retiré cela va beaucoup mieux

    Merci a ceux qui m'aurait lu.

    Michel

  3. #3
    Membre Expert Avatar de yildiz-online
    Homme Profil pro
    Architecte de domaine
    Inscrit en
    Octobre 2011
    Messages
    1 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de domaine

    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 447
    Par défaut
    Tu peux aussi te simplifier la vie en passant par cmake https://cmake.org/ pour générer tes make files, la syntaxe est beaucoup moins contraignante.

  4. #4
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 046
    Par défaut
    Il y a un bon tuto sur CMake ici.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Edit de makefile
    Par Nono Sto dans le forum Systèmes de compilation
    Réponses: 6
    Dernier message: 12/04/2017, 11h36
  2. [make] lister les targets defini dans un makefile
    Par Mokhtar BEN MESSAOUD dans le forum Systèmes de compilation
    Réponses: 4
    Dernier message: 22/12/2005, 17h03
  3. [MAKE] problème export sur makefile recursif
    Par tomasha dans le forum Systèmes de compilation
    Réponses: 2
    Dernier message: 07/10/2005, 20h08
  4. [devcpp] et makefile - no rule to make target
    Par Jabrul dans le forum Systèmes de compilation
    Réponses: 3
    Dernier message: 09/09/2005, 14h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo