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 :

Compiler avec un makefile


Sujet :

Systèmes de compilation

  1. #1
    Membre averti Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Points : 345
    Points
    345
    Par défaut Compiler avec un makefile
    Bonjour, j'ai cherché dans la faq et dans les sources et je ne trouve rien à propos de la compilation avec makefile, je voudrais ne pas utiliser d'ide et tout faire "à la main"

    Que me consseillez vous pour le compilateur ? (Au moins pour windows)
    Comment puis je créer un makefile ?
    Que dois-je mettre dans mon bat ? (Si besoin )

    Merci d'avance

  2. #2
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Il y a des gens qui cherchent loin... http://gl.developpez.com/tutoriel/outil/makefile/
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  3. #3
    Membre averti Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Points : 345
    Points
    345
    Par défaut
    Merci mais en fait je me suis mal exprimé, le fait de créer un makefile je sais mais comment faire pour qu'il serve à la compilation, je veux dire comment dire au compilo (déjà je ne sais pas lequel) que mon makefile est là ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    @ECHO OFF
    CLS
    C:\ladresseducompilo -make
    ECHO COMPILATION REUSSIE
    En fait le seul problème c'est que je ne sais pas où trouver un compilateur C redistribuable et en mode console (cela va s'en dire), je sais qu'il y a CGNU ou quelque chose comme ca mais quand je vais sur le site, je me retrouve sur le ftp avec un tas de fichier et je ne sais pas trop lequel télécharger si vous aviez un lien direct avec tout les fichiers nécessaires ce serait vraiment sympa

  4. #4
    Membre averti Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Points : 345
    Points
    345
    Par défaut
    Personne n'a d'idée ?

  5. #5
    Membre éclairé Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Points : 858
    Points
    858
    Par défaut
    A vrai dire, je n'ai pas bien compris la question.
    Mais si tu cherches à passer en paramètre ton makefile à l'outil make, et bien la syntaxe est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    make -f le_makefile_que_tu_veux
    Software Failure. Press left mouse button to continue.
    Guru Meditation #0100000C.000FE800

  6. #6
    Membre averti Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Points : 345
    Points
    345
    Par défaut
    Je crée un logiciel qui permet de developper des programmes en "langage de programmation en francais", mon logiciel se charge de convertir les commandes en francais en C et de créer un fichier C (jusque là tout va bien) mais je ne sais pas quel compilateur (pas ide) dois-je inclure avec mon logiciel, et comment compiler le fichier "test.c" créer par mon programme avec un makefile, si vous pouviez m'aider

  7. #7
    Membre averti Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Points : 345
    Points
    345
    Par défaut
    Bonjour, dans mon dossier j'ai :

    bin (contient un tas d'executables : g++, gcc, mingw32-g++-make...)
    lib (contient des headers)
    include (contient doc : GCC et debug ainsi que des fichiers .o)

    Voici mon makefile :

    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
     
    # Project: Project1
    # Makefile created by SamSoft DEV 1.0
     
    CPP  = g++.exe
    CC   = gcc.exe
    WINDRES = windres.exe
    RES  = 
    OBJ  = main.o $(RES)
    LINKOBJ  = main.o $(RES)
    LIBS =  -L"lib"  
    INCS =  -I"include" 
    CXXINCS =  -I"lib/gcc/mingw32/3.4.2/include"  -I"include/c++/3.4.2/backward"  -I"include/c++/3.4.2/mingw32"  -I"include/c++/3.4.2"  -I"include" 
    BIN  = Project1.exe
    CXXFLAGS = $(CXXINCS)  
    CFLAGS = $(INCS)  
    RM = rm -f
     
    .PHONY: all all-before all-after clean clean-custom
     
    all: all-before Project1.exe all-after
     
     
    clean: clean-custom
        ${RM} $(OBJ) $(BIN)
     
    $(BIN): $(OBJ)
        $(CC) $(LINKOBJ) -o "Project1.exe" $(LIBS)
     
    main.o: main.c
        $(CC) -c main.c -o main.o $(CFLAGS)
    Voici le code de mon .bat (compile.bat)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    @ECHO OFF
    CLS
    ECHO SAMY HOCINE - 2007 - COMPILE.BAT
    ECHO  __________________________
    bin\mingw32-make Makefile
    ECHO  __________________________
    ECHO IF YOU PRESS ENTER YOU WILL CREAT A NEW EXE
    PAUSE
    COMPILE.bat
    Quand je lance compile.bat voici ce que j'ai:

    Le compilo a dit :
    bin\mingw32-make: Nothing to be done fore 'Makefile'
    Je ne trouve pas de solution à mon problème

    Merci d'avance

  8. #8
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Citation Envoyé par _SamSoft_
    Voici mon makefile :

    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
     
    # Project: Project1
    # Makefile created by SamSoft DEV 1.0
     
    CPP  = g++.exe
    CC   = gcc.exe
    WINDRES = windres.exe
    RES  = 
    OBJ  = main.o $(RES)
    LINKOBJ  = main.o $(RES)
    LIBS =  -L"lib"  
    INCS =  -I"include" 
    CXXINCS =  -I"lib/gcc/mingw32/3.4.2/include"  -I"include/c++/3.4.2/backward"  -I"include/c++/3.4.2/mingw32"  -I"include/c++/3.4.2"  -I"include" 
    BIN  = Project1.exe
    CXXFLAGS = $(CXXINCS)  
    CFLAGS = $(INCS)  
    RM = rm -f
     
    .PHONY: all all-before all-after clean clean-custom
     
    all: all-before Project1.exe all-after
     
     
    clean: clean-custom
        ${RM} $(OBJ) $(BIN)
     
    $(BIN): $(OBJ)
        $(CC) $(LINKOBJ) -o "Project1.exe" $(LIBS)
     
    main.o: main.c
        $(CC) -c main.c -o main.o $(CFLAGS)
    La regle all de ton Makefile appelle d'autres regles qui n'existent pas, donc forcement ca va coince.
    En outre evite de mettre .PHONY comme premiere regle

  9. #9
    Membre averti Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Points : 345
    Points
    345
    Par défaut
    Que dois-je mettre dans mon makefile et dans mon bat svp ?

    Merci d'avance

  10. #10
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par _SamSoft_
    Je ne trouve pas de solution à mon problème
    Avant de te lancer à générer du code et à le compiler automatiquement, essaye de faire les étapes à la main.

    make "exécute" le makefile dans le répertoire où il est lancé ou bien un makefile spécifié avec l'option -f... Ici tu demandes à make de faire un fichier Makefile à partir des règles qui se trouve dans le fichier makefile par défaut.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  11. #11
    Membre éprouvé Avatar de Jérémy Lefevre
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 898
    Points : 969
    Points
    969
    Par défaut
    Salut _SamSoft_,
    Ton problème me semble assez ambigue ! en fait je ne comprend pas très bien ce que tu souhaites avoir !
    Alors on va reprendre du début

    Tu as ecrit un code qui te permet de transphormer du code dont tu as definis les normes en code C,
    Est ce correct??

    ensuite tu dois ecrire les regle de compilation dans un fichier que tu passe eb parametre a ton fichier BATCH qui contient le code de ton makefile on t'as donner l'option -f de make pour specifier à make ou il doit cherché le code, alors tu devrais avoir quelque chose qui fonctionne !

    Ton problème si j'ai bien compris c'est que tu veux un fichier makefile qui peut compiler n'importe quel code transphormé par ton programme !???
    Rien ne se perd, rien ne se crée, tout se transforme

    ------- -------

  12. #12
    Membre averti Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Points : 345
    Points
    345
    Par défaut
    Encore désolé, je me fais mal comprendre en ce moment

    Je voudrai tout simplement compiler un programme (créer un exe) d'un fichier genre : monfichier.c avec un makefile et un compilateur (en fait j'ai piqué celui fournit par Devcpp, je ne sais pas trop si j'ai le droit) et tout cela sans ide mais pas à la main, je veux dire avec des bat

    Merci d'avance de me detailler le contenu du makefile ou la manière de le créer et de l'utiliser pour compiler

  13. #13
    Membre éprouvé Avatar de Jérémy Lefevre
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 898
    Points : 969
    Points
    969
    Par défaut
    Ton makefile c'est toi qui le definit!! c'est a toi de definir comment tu vas nommer ton appli quelles librairies tu utilises .... ensuite tu veux le lancé dans un script batch et on t'as deja dis comment faire ... alors la je ne vois pas le probleme!!!
    On ne peut pas te faire un makefile génerique! sinon ca m'arangerai bien aussi !!!!
    Rien ne se perd, rien ne se crée, tout se transforme

    ------- -------

  14. #14
    Membre averti Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Points : 345
    Points
    345
    Par défaut
    Mais le problème c'est que j'en ai créé un mais qui ne fait rien, en fait je voudrais savoir ce que je dois mettre dans mon bat pour compiler mon fichier

  15. #15
    Membre éprouvé Avatar de Jérémy Lefevre
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 898
    Points : 969
    Points
    969
    Par défaut
    Ton .bat ne fera rien d'autre que appeler ton makefile ! donc si ton make ne marche pas c'est dans le code de ton makefile qu'il faut regarder!
    Rien ne se perd, rien ne se crée, tout se transforme

    ------- -------

  16. #16
    Membre averti Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Points : 345
    Points
    345
    Par défaut
    J'ai résolu mon problème, il fallait tout simplement mettre dans le bat :


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

Discussions similaires

  1. compiler avec un makefile
    Par vitevite dans le forum C
    Réponses: 3
    Dernier message: 13/01/2012, 10h34
  2. Compiler avec un Makefile
    Par nanath02 dans le forum Débuter
    Réponses: 1
    Dernier message: 05/03/2010, 10h10
  3. Compiler avec un makefile
    Par _SamSoft_ dans le forum C
    Réponses: 7
    Dernier message: 17/05/2007, 12h48
  4. Réponses: 1
    Dernier message: 18/06/2004, 01h12
  5. Compilation avec un Makefile
    Par Mau dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 28/02/2003, 11h30

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