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

GTK+ avec C & C++ Discussion :

makefile pour windows


Sujet :

GTK+ avec C & C++

  1. #1
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 607
    Par défaut makefile pour windows
    Bonjour

    J'ai fait un petit programme avec makefile (un pendu mathématique pour des classes de primaires ) : http://troumad.info/Linux/essai/pendu.zip.
    Il compile sans problème sous Linux. La semaine dernière, je suis tombé (malchance ??) sur un PC avec Windows installé. Je ne suis pas arrivé à mettre mon projet ni sous codeblock, ni sous dev C++
    Je me demande donc, s'il ne serait pas plus simple de transformer le makefile pour qu'il compile aussi sous Windows. Je n'étais pas pressé pour poser la question car je ne suis pas prêt de revenir sur un PC avec Windows
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Pour Code::Blocks, il faut un template complet qui te permette de créer un projet GTK+ ! Voici le miens (en pièce jointe)... Il faut le dézipper dans le répertoire: CodeBlocks_install_dir\share\CodeBlocks\templates\

    Et pour un Makefile, le seul moyen à ma connaissance est d'utiliser CygWin pour pouvoir compiler avec
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 607
    Par défaut
    Citation Envoyé par Franck.H
    Et pour un Makefile, le seul moyen à ma connaissance est d'utiliser CygWin pour pouvoir compiler avec
    Je croyais que CygWin est un émulateur Linux pour Windows. Je me trompe peut-être.

    Pour code::block :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    !DOCTYPE Code::Blocks_template_file>
    <Code::Blocks_template_file>
                    <Template name="GTKapp" title="GTK Application" category="GUI" bitmap="gtklogo.png">
                    <FileSet name="s" title="Default">
                            <File source="main.c" destination="main.c"/>
                            <File source="pendu.c" destination="pendu.c"/>
                            <File source="commun.c" destination="commun.c"/>
                    </FileSet>
                    <Option name="GTK Application">
                            <Project file="gtk.cbp"/>
                    </Option>
            </Template>
    </Code::Blocks_template_file>
    Par contre, avec code::block, on ne peut pas faire un projet avec 2 exécutables. Non ?

    Et générer le .exe pour windows à partir de Linux ? Tout simplement ! Ça devrait être faisable non ?
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  4. #4
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 607
    Par défaut
    Je viens d'installer codeblock sous wine, ainsi que gtk, mais code block n'accepte pas de compiler du gtk
    Il n'a pas trouvé gtk/gtk.h
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  5. #5
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par troumad
    Je viens d'installer codeblock sous wine, ainsi que gtk, mais code block n'accepte pas de compiler du gtk
    Il n'a pas trouvé gtk/gtk.h
    Bin c'est un peu normal ca, il faut aussi installer les fichiers de développement ! A moins que c'est dû au fait que ca tourne sur un émulateur...
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  6. #6
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 607
    Par défaut
    J'ai installé tout ce qui va avec gtk
    Mais, il faudra que j'approfondisse (dans 5 jours).
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  7. #7
    Membre émérite Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773

  8. #8
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 607
    Par défaut
    Je regarderais à partir de Mardi/Mercredi...

    Ça a l'air correct !

    C'est déjà samedi et je n'ai pas encore eu le temps
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  9. #9
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 607
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  10. #10
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Citation Envoyé par Franck.H
    Et pour un Makefile, le seul moyen à ma connaissance est d'utiliser CygWin pour pouvoir compiler avec

    Il y a également MSys que j'utilisais pour porter facilement des Makefile de linux sous windows (avec autoconf, configure et tout ça.

    Maintenant, vu que tu utilises code::blocks, pourquoi ne pas importer tous les fichiers dans le projet, il suffit juste d'indiquer les options pour l'édition des liens (notamment GTK), pis il te fera le Makefile tout seul.

  11. #11
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 607
    Par défaut
    Citation Envoyé par millie
    Maintenant, vu que tu utilises code::blocks
    La dernière fois, je n'ai pas pu le compiler
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  12. #12
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 607
    Par défaut
    Et aujourd'hui non plus
    Je me suis dit sous debian : même pas de .deb...

    Je suis assez surpris pour un programme que je croyais universel...

    Par contre mingw32 existe
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  13. #13
    Membre émérite Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773

  14. #14
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 607
    Par défaut
    Merci !
    Je croyais que le packetage pour ubuntu ne marchait pas sous debian...

    Il reste la compilation pour windows...
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  15. #15
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 607
    Par défaut
    Bon...

    Après avoir répondu à beaucoup de mes questions et m'avoir appris pleins de choses, je reviens au point de départ

    J'ai modifié mon makefile pour qu'il crée un .exe avec i586-mingw32msvc-gcc (c'est bien l'utilité de ce programme ?).

    Voici le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    [troumad@portable][~/pendu]$ make
    i586-mingw32msvc-gcc -o main.o -c main.c  `pkg-config --cflags gtk+-2.0`
    i586-mingw32msvc-gcc -o pendu.o -c pendu.c  `pkg-config --cflags gtk+-2.0`
    i586-mingw32msvc-gcc -o commun.o -c commun.c  `pkg-config --cflags gtk+-2.0`
    i586-mingw32msvc-gcc -o pendu.exe main.o pendu.o commun.o  `pkg-config --libs gtk+-2.0`
    /usr/lib/gcc/i586-mingw32msvc/3.4.5/../../../../i586-mingw32msvc/bin/ld: ne peut trouver -lgtk-x11-2.0
    collect2: ld a retourné 1 code d'état d'exécution
    make: *** [pendu.exe] Erreur 1
    Voici le 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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    # http://gl.developpez.com/tutoriel/outil/makefile/
     
    # Ce makefile est compliqué, il y a makefile.simple comme exemple simple
    # Les deux makefile font la même chose
     
    # "man pkg-config" pour les infos sur les options
     
    #CC=gcc
    CC=i586-mingw32msvc-gcc
     
    ERROR_CFLAGS = -Wall -Wextra -pedantic
    GTK_CFLAGS=`pkg-config --cflags gtk+-2.0`
    CFLAGS = $(ERROR_FLAGS) $(GTK_CFLAGS)
     
    GTK_LDFLAGS = `pkg-config --libs gtk+-2.0`
    LDFLAGS = $(ERROR_FLAGS) $(GTK_LDFLAGS)
     
    # -TC- On liste tous les fichiers sources du projet 
    SRC1=main.c pendu.c commun.c
    SRC2=lecture_pendu.c lecture.c commun.c
    SRC=$(SRC1) $(SRC2)
    # -TC- Pour construire la liste des fichiers objets, c'est simple, car on veut
    # un fichier objet par fichier d'implantation
    OBJ1=$(SRC1:.c=.o)
    OBJ2=$(SRC2:.c=.o)
    OBJ=$(OBJ1) $(OBJ2)
    EXEC=pendu.exe lecture_pendu.exe
    #EXEC=pendu lecture_pendu
     
    all: $(EXEC)
     
    # -TC- Instruction destinée à l'édition des liens. $@ correspond à la cible et $^ à 
    # la liste des dépendances
    #pendu : $(OBJ1)
    pendu.exe : $(OBJ1)
    	$(CC) -o $@ $^ $(LDFLAGS)
     
    #lecture_pendu : $(OBJ2)
    lecture_pendu.exe : $(OBJ2)
    	$(CC) -o $@ $^ $(LDFLAGS)
    # -TC- Ici, on liste les dépendances pour chaque fichier d'implantation
    main.o : pendu.h
    pendu.o: pendu.h commun.h
     
    lecture.o : lecture.h
    lecture_pendu.o : lecture.h commun.h
     
    # -TC- Enfin, on utilise une règle d'inférence générique pour la compilation 
    # des fichiers sources. $@ désigne la cible, et $< désigne la 1ère des 
    # dépendances. Cette manière de faire est utile lorsqu'on a plus de 2 fichiers
    # d'implantation à compiler
    %.o: %.c
    	$(CC) -o $@ -c $< $(CFLAGS)
     
    # Pour déclarer que clean et mrproper ne fabriquent pas les éventuels fichiers
    # clean et mrproper qui pourraient éventuellement être présent dans le
    # répertoire courant : .PHONY
    .PHONY: clean mrproper
     
    # Lancer avec "makefile clean"
    clean:
    	rm -rf *.o
     
    # Lancer avec "makefile mrproper" qui lancera aussi clean car clean en dépend
    mrproper: clean
    	rm -rf $(EXEC)
     
    # TC : commentaires par mujigka : http://www.developpez.net/forums/member.php?u=62148
    nb : i586-mingw32msvc-gcc n'a pas été reconnu par code block
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

Discussions similaires

  1. Compiler en C à partir de windows en manuel (makefile) pour Linux
    Par _SamSoft_ dans le forum Autres éditeurs
    Réponses: 11
    Dernier message: 06/04/2007, 17h12
  2. les cahiers du programmeur "l'installeur pour Windows&
    Par BRAUKRIS dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 26/05/2004, 10h56
  3. [Blob] PostGreSQL Beta4 pour Windows
    Par YanK dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 09/10/2003, 11h46
  4. Créer de programme pour WIndows avec Turbo Pascal
    Par kaygee dans le forum Turbo Pascal
    Réponses: 16
    Dernier message: 20/08/2003, 23h22
  5. Format d'un exe pour DOS et pour Windows
    Par Alfhiger dans le forum Assembleur
    Réponses: 4
    Dernier message: 12/06/2002, 11h57

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