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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 119
    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 confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 119
    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 confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 119
    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 confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 119
    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 ...

+ 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