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 :

Makefile pour Linux ou windows


Sujet :

Syst�mes de compilation

  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 Linux ou windows
    Bonjour

    J'essaie de faire un seul makefile pour faire de la compilation (crois�e ou non) d'un m�me programme. Voici mon ensemble de fichiers :

    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
    all: option
     
    option:
    	@echo "option mrproper et clean pour nettoyer plus ou moins"
    	@echo "option windows ou win pour créer un exécutable windows"
    	@echo "option linux ou lin pour créer un exécutable linux"
     
    windows:
    	make -f makefile.windows
     
    win:
    	make -f makefile.windows
     
    lin: 
    	make -f makefile.linux
     
    linux: lin
     
    clean:
    		rm *.o *.org
     
    mrproper: clean
    		rm perso.exe perso
    Le makefile.linux
    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
    CC=gcc
     
     CFLAGS= -Wshadow  -Winit-self  -Wredundant-decls  -Wcast-align  -Wundef  -Wfloat-equal  -Winline  -Wunreachable-code  -Wmissing-declarations  -Wmissing-include-dirs  -Wswitch-enum  -Wswitch-default  -Wmain  -Wall  `pkg-config gtk+-3.0 --cflags` -export-dynamic
     
      LDFLAGS=`pkg-config gtk+-3.0 --libs` -export-dynamic  -lzip -lm
     
       EXEC=perso
       SRC= $(wildcard *.c)
    OBJ= $(SRC:.c=.o)
     
    all: $(EXEC)
     
    $(EXEC) : $(OBJ)
    		$(CC) -o $@ $^ $(LDFLAGS)
     
     
    %.o: %.c
    		$(CC) -o $@ -c $< $(CFLAGS)
    Le makefile.windows
    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
    CC=i686-w64-mingw32-gcc
     
     CFLAGS= -Wshadow  -Winit-self  -Wredundant-decls  -Wcast-align  -Wundef  -Wfloat-equal  -Winline  -Wunreachable-code  -Wmissing-declarations  -Wmissing-include-dirs  -Wswitch-enum  -Wswitch-default  -Wmain  -Wall  `i686-w64-mingw32-pkg-config gtk+-3.0 --cflags` -export-dynamic -mwindows  
     
      LDFLAGS=`i686-w64-mingw32-pkg-config gtk+-3.0 --libs` -lzip -mwindows -Wl,--export-all-symbols
     
       EXEC=perso.exe
       SRC= $(wildcard *.c)
    OBJ= $(SRC:.c=.org)
     
    all: $(EXEC)
     
    $(EXEC) : $(OBJ)
    		$(CC) -o $@ $^ $(LDFLAGS)
     
    %.org: %.c
    		$(CC) -o $@ -c $< $(CFLAGS)
    Pour pouvez remarquer que pour une meilleure cohabitation, les objets de linux sont en .o et ceux de windows en .obj. Ceci me permet de compiler pour l'un ou pour l'autre. Mais, j'ai un probl�me, un petit probl�me : "makefile win" ne marche pas ! C'est � dire que pour luii, il n'y a rien � faire. Pourquoi ?

    Regardez si dessous pour bien saisir ce que je veux dire.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    [troumad@localhost perso]$ make win
    make: «*win*» est à jour.
    [troumad@localhost perso]$ make windows 
    make -f makefile.windows
    make[1]*: on entre dans le répertoire «*/home/troumad/Documents/add/perso*»
    i686-w64-mingw32-gcc -o utile.org -c utile.c -Wshadow  -Winit-self  -Wredundant-decls  -Wcast-align  -Wundef  -Wfloat-equal  -Winline  -Wunreachable-code  -Wmissing-declarations  -Wmissing-include-dirs  -Wswitch-enum  -Wswitch-default  -Wmain  -Wall  `i686-w64-mingw32-pkg-config gtk+-3.0 --cflags` -export-dynamic -mwindows
    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/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
    L'erreur venait de la pr�sence d'un r�pertoire win dans l'espace de travail. J'ai du rajouter en d�but de makefile :
    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...

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. choisir un moteur physique pour linux et windows
    Par Asmod_D dans le forum Physique
    R�ponses: 15
    Dernier message: 09/05/2008, 19h38
  2. Delphi pour Linux et Windows
    Par Jiyuu dans le forum D�buter
    R�ponses: 4
    Dernier message: 17/11/2007, 09h50
  3. R�ponses: 3
    Dernier message: 23/05/2007, 00h03
  4. 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
  5. ORB pour Linux et Windows
    Par slyer dans le forum CORBA
    R�ponses: 1
    Dernier message: 18/05/2006, 14h56

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