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 :

[debutant] compilation gcc et makefile


Sujet :

Systèmes de compilation

  1. #1
    Membre habitué Avatar de harsh
    Inscrit en
    Février 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 229
    Points : 193
    Points
    193
    Par défaut [debutant] compilation gcc et makefile
    Bonjour,

    Voici mon 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
     
    CC=gcc
    CFLAGS=-Wall -ansi
    LIBPATH=/home/ydumorti/lib
    LDLIB=-L$(LIBPATH)/CamelliaLib/lib -L/usr/local/lib
    LDFLAGS=-Wall -ansi $(LDLIB)
    SRC=$(wildcard *.cpp)
    OBJ=$(SRC:.cpp=.o)
    EXEC=opticalFlow
     
    all: $(EXEC)
     
    opticalFlow: $(OBJ)
    	$(CC) -o $@ $^ $(LDFLAGS)
     
    %.o: %.cpp
    	$(CC) -o $@ -c $< $(CFLAGS)
     
    clean:
    	rm -rf *.o
    Rien de bien compliquer (mais si vous voyez une erreur n'hesitez pas), maintenant me reste a inclure des .h disseminés un peu partout (donc leurs chemins d'acces) ... et je sais plus comment on fait

    Merci
    Avant de poser une question, lire la Avant de répondre, lire la question

  2. #2
    Membre habitué Avatar de harsh
    Inscrit en
    Février 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 229
    Points : 193
    Points
    193
    Par défaut
    -I[directory] d'apres le man.... juste une ptite confirmation de votre part...
    Avant de poser une question, lire la Avant de répondre, lire la question

  3. #3
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Bonjour,

    Citation Envoyé par harsh
    -I[directory] d'apres le man.... juste une ptite confirmation de votre part...
    Cette option permet d'ajouter un dossier contenant des fichiers d'en tete au chemin de recherche (un peu comme le path pour les programmes). Mais ça ne permet pas de les inclure. C'est bien ça que tu veux ?

  4. #4
    Membre éclairé
    Avatar de panda31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2003
    Messages : 670
    Points : 848
    Points
    848
    Par défaut
    Mes makefiles sont simples et du coup je me trompe rarement :

    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
    
    #Choix du compilateur
    CC=gcc
    
    #Definition des options de compilation
    CFLAG= -g
    
    #Definition des options de l'edition des liens
    LFLAGS=
    
    # fichiers "*.c" et "*.h" necessaires a la compilation du programme
    
    SRC= Source1.c Source2.c SourceN.c Header1.h Header2.h HeaderN.h
    
    # fichiers objets temporaires generes par le compilateur
    OBJ=$(SRC:.c=.o)
    
    # fichiers binaires executables generes 
    BIN= NomExecutable
    
    # pour la compilation de tous les programmes
    all= $(BIN) 
    
    # pour l'édition de liens du programme et la compilation
    $(BIN):$(OBJ)
    		$(CC) -o $(BIN) $(OBJ) $(CFLAG) 
    
    # pour effacer les fichiers generes lors de la compilation
    # et les fichiers temporaires generes par les editeurs ("cleaner")
    clean:
       rm -f $(OBJ) $(BIN) *~ core*
    Michaël Mary
    Consultant PLM dans une société de conseil toulousaine
    Auditeur CNAM-IPST depuis septembre 2008
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
    John F. Woods
    mon cv et mon domaine et mon blog
    Aucune question technique par MP, svp

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Points : 60
    Points
    60
    Par défaut
    j'ai le meme probleme pour inclure les fichier d'entete et les lib, j'ai bien spécifié dans mon makefile, le chemin exacte mais, il me sort des erreurs genre: fonction non déclarée!!!!
    voici mon make file:
    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
     
     
    CFLAGS=-Wall
    #CHC - CFLAGS=-Wall -ansi
    #LDFLAGS=-Wall -ansi
     
     
    SDK_INC    = C:/Program Files/SDK30/Version 4.8/SDK/inc2
    SDK_LIB    = C:/Program Files/SDK30/Version 4.8/SDK/Lib_GNU
     
    GNU_VERSION = 3.4.3
     
    GNU_DIR      = C:/GCC_$(GNU_VERSION)
    GNU_BIN_DIR  = $(GNU_DIR)/bin
     
    GNU_TARGET   = arm-elf
    GNU_LIB_TYPE = thumb/soft/interwork
     
    GNU_LIB_DIR_1 = $(GNU_DIR)\$(GNU_TARGET)\lib\$(GNU_LIB_TYPE)
    GNU_LIB_DIR_2 = $(GNU_DIR)\lib\gcc\$(GNU_TARGET)\$(GNU_VERSION)\$(GNU_LIB_TYPE)
     
    GNU_LINKER = $(GNU_BIN_DIR)\$(GNU_TARGET)-ld
    GNU_COMPILER = $(GNU_BIN_DIR)/$(GNU_TARGET)-gcc
     
    LDFLAGS=-L "$(GNU_LIB_DIR_1)"  -L "$(GNU_LIB_DIR_2)" -lc -lgcc 
     
    INCLUDES   = -I $(SDK_INC)
     
    LIBS       = "$(SDK_LIB)/eft30.lib" -L "$(GNU_LIB_DIR_1)" -lc -L "$(GNU_LIB_DIR_2)" -lgcc
     
    EXEC=hello1
     
    all: $(EXEC)
     
    hello1: hello1.o ecran.o
    	$(GNU_LINKER) $(LIBS) -o hello1 hello1.o ecran.o $(LDFLAGS) 
     
    hello1.o: hello1.c
    	$(GNU_COMPILER) $(INCLUDES) $(CFLAGS) -o hello1.o -c hello1.c  
     
    ecran.o: ecran.c hello1.h
    	$(GNU_COMPILER) $(INCLUDES) $(CFLAGS) -o ecran.o -c ecran.c   
    .PHONY: clean mrproper
     
    clean:
    	rm -rf *.o
     
    mrproper: clean
    	rm -rf $(EXEC)*
    et le message que j'ai eu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    arm-elf-gcc: Files/SDK30/Version: No such file or directory
    arm-elf-gcc: 4.8/SDK/inc2: No such file or directory
    hello1.c:2:17: oem.h: No such file or directory
    hello1.c: In function `Hello':
    hello1.c:15: warning: implicit declaration of function `startupcv20'
    hello1.c:16: warning: implicit declaration of function `printf'
    hello1.c:18: warning: implicit declaration of function `ttestall'
    hello1.c:20: warning: implicit declaration of function `fclose'
    hello1.c:20: error: `hdDisplay' undeclared (first use in this function)
    hello1.c:20: error: (Each undeclared identifier is reported only once
    hello1.c:20: error: for each function it appears in.)
    hello1.c:21: error: `hdKeyboard' undeclared (first use in this function)
    make: *** [hello1.o] Error 1
    ce que j'ai remarqué est que : Files/SDK30/Version 4.8/SDK/inc2 est un seul chemin mais dans le message d'erreur j'ai ça:
    arm-elf-gcc: Files/SDK30/Version: No such file or directory
    arm-elf-gcc: 4.8/SDK/inc2: No such file or directory!!!!!!!!!!!!!!

    si qq1 peut m'aider ça serai génial merci

Discussions similaires

  1. Réponses: 46
    Dernier message: 21/11/2009, 17h42
  2. [Debutant] compilation automatique
    Par Yannos94 dans le forum JBuilder
    Réponses: 5
    Dernier message: 05/09/2007, 15h08
  3. Réponses: 1
    Dernier message: 18/06/2004, 01h12
  4. [servlet][debutant] compilation impossible
    Par omega dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 02/03/2004, 11h48
  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