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

C Discussion :

make Aucune règle pour fabriquer la cible


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de J4e8a16n
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 271
    Par défaut make Aucune règle pour fabriquer la cible
    Bonjour à tous,

    GNU Make 4.2.1

    #make: *** Aucune règle pour fabriquer la cible «*x86_64-w64-mingw32-gcc-7.3.0.exe*»,
    nécessaire pour «*out/test.o*». Arrêt.

    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
     
    DPROJ = /cygdrive/c/JPD/C/devProjects/make_example
    DOUT = out
    SRCDIR = src
    BIN = $(DOUT)/test.exe
    OBJS = $(DOUT)/test.o $(DOUT)/test2.o $(DOUT)/test3.o
    DEPS = inc/test.h
    INCLUDES = -I$(DEPS)
    CC = x86_64-w64-mingw32-gcc-7.3.0.exe
    LD = x86_64-w64-mingw32-gcc-7.3.0.exe
    AR = ar cr libclib.a $(OBJS)
    CFLAGS = -W -Wall -O1 $(INCLUDES)
     
    # x86_64-w64-mingw32-gcc-7.3.0.exe -Iinc/test.h -c src/test.c  -o out/test.o FONCTIONNE
     
    $(DOUT)/test.o: $(SRCDIR)/test.c $(DEPS)      \
    	$(CC) $(CFLAGS)  -c $< -o $@
     
    #make: ***  Aucune règle pour fabriquer la cible «*x86_64-w64-mingw32-gcc-7.3.0.exe*», 
    nécessaire pour «*out/test.o*». Arrêt.
     
     
     
     
    out/test2.o: $(SRCDIR)/test2.c $(DEPS)     \
       $(CC) $(CFLAGS) -c $< -o $@
     
    out/test3.o: $(SRCDIR)/test3.c $(DEPS)     \
       $(CC) $(CFLAGS) -c $< -o $@
     
     
    out/libclib.a: $(OBJS)     \
    	$(AR)  
     
    $(BIN): libclib.a  $(OBJS)   \
       $(CC)  $(CFLAGS) libclib.a $(OBJS) -o  $< $@   
     
     
    #out/test.exe: $(SRCDIR)/test.c out/test.o  out/test2.o  out/test3.o     \
      # $(CC) $(CFLAGS) $(SRCDIR)/test.c  out/libclib.a out/test.o  out/test2.o  out/test3.o  -o out/test.exe
    Et pourtant
    x86_64-w64-mingw32-gcc-7.3.0.exe -Iinc/test.h -c src/test.c -o out/test.o

    FONCTIONNE

    Merci de votre attention,

    JPD

  2. #2
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226
    Par défaut
    Je déconseille de faire les makefile a la main , utilise soit un IDE soit CMake ou Premake

  3. #3
    Membre très actif Avatar de J4e8a16n
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 271
    Par défaut
    Cmake : compliqué
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $ cmake  CodeBlocks - Ninja   .
    CMake Error: The source directory "/cygdrive/c/JPD/C/devProjects/make_example" does not appear to contain CMakeLists.txt.


    Code Block: compliqué. Surtout quand on ne peut indiquer la fabrication de plusieurs fichiers objets. J'ai été sur le forum ...... on a dit à un type d'améliorer Code Block..... pas fort.

    Au lieu d'apprendre des tas d'ide autant apprendre make non?

    Une fois qu'on a un modèle qui fonctionne, à la main, on a qu'à le modifier un peu pour d'autres projets.
    À moins qu'on fabrique vraiment de grosses applications.....

    Ce qui n'est pas mon cas.


    JPD

  4. #4
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226
    Par défaut
    Pour Code::Block les deux défauts que je vois qu'on lui reproche est qu'il y a pas d'autre thème que le principal (un thème sombre et de plus en plus apprécier) , qu'il bug souvent chez certain ( pour ma part jamais eu de soucis donc bon ^^').
    Surtout quand on ne peut indiquer la fabrication de plusieurs fichiers objets
    Je n'ai pas compris ?
    Tu peux avoir plusieurs fichier .c et donc avoir plusieurs .o a compiler , je l'utilise même pour la cross compilation (environ 8 plate forme différentes) , après il est vrai qu'il est peut être un peu compliqué d'utilisation , mais quand on sait comment il fonctionne c'est relativement simple.
    Mais si il ne te va pas , ils existent plein d'autre : Visual Studio , CLion , Eclipe , Geany etc etc , c'est pas les IDE qui manque.

    Au lieu d'apprendre des tas d'ide autant apprendre make non?
    Non , vu tout les outils existant c'est une perte de temps , si tu veux vraiment apprendre , apprends correctement aussi les bons outils
    (de plus la base c'est le compilateur principalement gcc , je connais relativement bien les options du compilateur , et très peu du makefile , cela ne m'a jamais empêcher de faire de gros projet).

  5. #5
    Membre très actif Avatar de J4e8a16n
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 271
    Par défaut
    Voillllll à,

    Pour ceux qui aiment la trvaux manuels ;o)


    Code Makefile : 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
    # Makefile
    #Si on utilise GNU make, on peut simplifer le Makefile comme ceci:
    #make  -f /cygdrive/c/JPD/C/devProjects/make_example/makefile
    SHELL = /bin/sh
    .SUFFIXES: .c .o .h
    #<a href="https://www.gnu.org/prep/standards/html_node/Makefile-Basics.html#Makefile-Basics" target="_blank">https://www.gnu.org/prep/standards/h...akefile-Basics</a>
    #In this example, you would use ‘$@’ for the object file name and ‘$<’ for the source file name.
    #mingw32-make.exe
    #<a href="https://www.gnu.org/software/make/manual/make.html#Automatic-Variables" target="_blank">https://www.gnu.org/software/make/ma...atic-Variables</a>
     
     
    DPROJ = /cygdrive/c/JPD/C/devProjects/make_example
    DOBJ = obj
    SRCDIR = src
    BIN = bin/test.exe
    OBJS = $(DOBJ)/test.o $(DOBJ)/test2.o $(DOBJ)/test3.o
    DEPS = inc/test.h
    INCLUDES = inc/test.h
    CC = x86_64-w64-mingw32-gcc-7.3.0.exe
    AR = ar cr libclib.a $(OBJS)
    CFLAGS = -I. -Wall -c   
    #Exemple:  test.o =$@   test.c= $<   
     
     
    bin/test.exe: $(SRCDIR)/test.c  $(OBJS)  ;
     
    		$(CC) -I$(SRCDIR)/test.c   obj/libclib.a  -o bin/test.exe 
     
     
    $(DOBJ)/libclib.a: $(OBJS) ;
    		$(AR)  
     
    $(DOBJ)/test3.o: $(SRCDIR)/test3.c inc/test.h ;
    		$(CC) $(CFLAGS)  $< -o $@
     
    $(DOBJ)/test2.o: $(SRCDIR)/test2.c  inc/test.h ;
    		$(CC) $(CFLAGS)     -o $@  $<
     
    $(DOBJ)/test.o: $(SRCDIR)/test.c  inc/test.h ;
    		$(CC) $(CFLAGS)    $< -o $@








    JPD

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

Discussions similaires

  1. Makefile - Aucune règle pour fabriquer la cible
    Par Andre1213 dans le forum C
    Réponses: 8
    Dernier message: 15/09/2017, 18h32
  2. make pas de règle pour fabrique la cible clean
    Par sousoux dans le forum Linux
    Réponses: 11
    Dernier message: 09/12/2014, 10h20
  3. Aucune règle pour fabriquer la cible
    Par rainbowcrypt dans le forum Modules
    Réponses: 1
    Dernier message: 05/06/2011, 16h41
  4. Réponses: 3
    Dernier message: 15/02/2009, 10h27
  5. [postfix] make tidy: Pas de règle pour fabriquer la cible « tidy »
    Par rvfranck dans le forum Administration système
    Réponses: 5
    Dernier message: 23/06/2007, 16h49

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