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

MinGW Discussion :

Mingw et MakeFile


Sujet :

MinGW

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 119
    Points : 82
    Points
    82
    Par défaut Mingw et MakeFile
    Bonjour à tous, j'ai installé recemment Mingw, ça fonctionne bien pour compiler directement les .c et .cpp mais je n'arrive pas à utiliser un makefile...

    Voila mon code "hello.cpp" ( rien d'extraordinaire c'est pour le test)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #include <iostream>
    int main(int argc, char *argv[]){
        std::cout << "Hello World !" << std::endl;
        return EXIT_SUCCESS;
    }
    Mon Makefile "Makefile.win" ( que j'ai recuperé sur un tutoriel )

    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
     
    CC=g++
    CFLAGS=-W -Wall -ansi -pedantic -pedantic-error -s -O3 -Os
    LDFLAGS=
    EXEC=Hello.exe
    SRC= $(wildcard *.cpp)
    OBJ= $(SRC:.cpp=.o)
     
    all: $(EXEC)
     
    Hello.exe: $(OBJ)
        $(CC) -o $@ $^ $(LDFLAGS)
     
    %.o: %.cpp
        $(CC) -o $@ -c $< $(CFLAGS)
     
    .PHONY: clean mrproper
     
    clean:
        del /F *.o
     
    mrproper: clean
        del /F $(EXEC)
    et mon .bat "Build.bat" qui execute tout ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @echo off
    cd C:\dev\test
    del Hello.exe /F
    mingw32-make
    PAUSE
    --------------------------------------

    Resulat du lancement -->

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Impossible de trouver C:\dev\test\Hello.exe
    mingw32-make: *** No targets specified and no makefile found.  Stop.
    Appuyez sur une touche pour continuer...
    Que se passe t-il pourquoi il ne trouve pas mon makefile ?

    Merci d'avance

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Le nom par défaut d'un makefile n'est il pas "Makefile" ?

    Sinon, tenter avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mingw32-make -f Makefile.win

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 119
    Points : 82
    Points
    82
    Par défaut
    ah super la ça fonctionne...
    Enfin presque )))

    Oui le nom du fichier est Makefile.win car je me suis appuyé sur ce que genere DevC++.

    J'ai renommé le fichier en Makefile et la pas de soucis il le reconnait mais ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    makefile:11: *** missing separator.  Stop.
    Appuyez sur une touche pour continuer...
    Mais je suppose que c'est du à ce fichier, je dois dire que je comprend pas tout...
    Bref je vais fouiner à droite à gauche

  4. #4
    Invité(e)
    Invité(e)
    Par défaut
    Citation Envoyé par anapotheque Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    makefile:11: *** missing separator.  Stop.
    Appuyez sur une touche pour continuer...
    Mais je suppose que c'est du à ce fichier, je dois dire que je comprend pas tout...
    Le format Makefile est particulier : après une règle par exemple, les instructions, ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(CC) -o $@ $^ $(LDFLAGS)
    doivent être précédée du caractère tabulation. Si c'est des espaces, cela ne fonctionne pas.

    En général, les éditeurs de textes permettent de faire cette distinction. Lequel utilises-tu ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 119
    Points : 82
    Points
    82
    Par défaut
    pour le moment j'utilise Ultraedit, un genre de bloc note sofistiqué, pas mal quand meme )))

    Je vais voir si il y a bien des tabulations

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 119
    Points : 82
    Points
    82
    Par défaut
    Voila la ça fonctionne en mettant comme tu l'as dit des tabulations et non des espaces, je n'y aurai jamais pensé merci

    Bon maintenant il y a un probleme avec les librairies on dirait )))

    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
     
    g++ -o hello.o -c hello.cpp -W -Wall -ansi -pedantic -pedantic-error -s -O3 -Os
    In file included from C:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/
    c++/3.4.5/bits/postypes.h:46,
                     from C:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/
    c++/3.4.5/iosfwd:50,
                     from C:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/
    c++/3.4.5/ios:44,
                     from C:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/
    c++/3.4.5/ostream:45,
                     from C:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/
    c++/3.4.5/iostream:45,
                     from hello.cpp:1:
    C:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/cwchar:161:
    error: `::swprintf' has not been declared
    C:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/cwchar:168:
    error: `::vswprintf' has not been declared
    hello.cpp:4: warning: unused parameter 'argc'
    hello.cpp:4: warning: unused parameter 'argv'
    mingw32-make: *** [hello.o] Error 1
    Appuyez sur une touche pour continuer...

    bref pas terrible ...

  7. #7
    Invité(e)
    Invité(e)
    Par défaut
    Hum...

    et si tu simplifies le CFLAGS ?
    Sinon, quel est l'encodage du fichier source ? UTF-8 ? Ascii ? cp1512 ?
    Je demande l'encodage car les fonctions swprintf et vswprint ne sont pas trouvées. Or ces deux fonctions sont liées à l'écriture des caractères non-Ascii.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 119
    Points : 82
    Points
    82
    Par défaut
    Alors en changeant CFLAGS=-Wextra -Wall ça marche nickel sans buger
    Tous mes problemes sont resolus.

    Je te remercie enormement pour ton aide, je n'y serai jamais arrivé sinon.
    Il va falloir que je trouve un tutoriel ou meme des documentations sur les makefile parceque c'est pas bien clean dans mon esprit encore et je deteste executer des codes que je ne comprend pas...

    Sinon pour l'encodage normalement c'est de l'UTF-8.

    En tout cas merci pour tout. ^^

  9. #9
    Invité(e)
    Invité(e)
    Par défaut
    Citation Envoyé par anapotheque Voir le message
    Je te remercie enormement pour ton aide, je n'y serai jamais arrivé sinon.
    Il va falloir que je trouve un tutoriel ou meme des documentations sur les makefile parceque c'est pas bien clean dans mon esprit encore et je deteste executer des codes que je ne comprend pas...
    C'est avec ce tutoriel que j'ai commencé sur les makefile : http://gl.developpez.com/tutoriel/outil/makefile/

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/04/2014, 15h12
  2. [MinGW] enregistrer les erreurs de compilation via makefile ?
    Par runn2 dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 16/10/2007, 12h30
  3. Makefile
    Par Wisefool dans le forum Systèmes de compilation
    Réponses: 2
    Dernier message: 03/11/2003, 17h41
  4. Bibliothèque Gcc/mingw 2.95.3.6
    Par richard dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 11/10/2003, 22h54
  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