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

Linux Discussion :

(MAKEFILE) Makefile - file format not recognized


Sujet :

Linux

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 80
    Points : 65
    Points
    65
    Par défaut (MAKEFILE) Makefile - file format not recognized
    Bonjour,
    je suis sur un projet d'informatique pour mon master et nous avons voulu faire un makefile pour bien synthétiser la compilation de notre code. Mais lorsque nous compilons depuis peu nous obtenons ceci durant notre compilation :

    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
     
    ************ Génération de TableDesIdentificateurs.o dans temp ************
    g++ -Wall -g -O2 -I. -c -o temp/TableDesIdentificateurs.o src/TableDesIdentificateurs.cpp src/TableDesIdentificateurs.h
     
     
    ************ Génération de TableDesSymboles.o dans temp ************
    g++ -Wall -g -O2 -I. -c -o temp/TableDesSymboles.o src/TableDesSymboles.cpp src/TableDesSymboles.h
     
     
    ************ Génération de Type.o dans temp ************
    g++ -Wall -g -O2 -I. -c -o temp/Type.o src/Type.cpp src/Type.h
     
     
    ************ Génération test1 dans bin ************
    g++ -o bin/test1 temp/TableDesIdentificateurs.o temp/TableDesSymboles.o temp/Type.o -lfl
    /usr/bin/ld:temp/TableDesIdentificateurs.o: file format not recognized; treating as linker script
    /usr/bin/ld:temp/TableDesIdentificateurs.o:1: syntax error
    collect2: ld returned 1 exit status
    make: *** [bin/test1] Erreur 1
    Nous ne savons pas trop d'où vient notre erreur mais voici notre 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
     
    CPP=g++
    LD=g++
    EX=flex
    BIS=bison
     
    WBIN=bin
    WSRC=src
    WOBJ=temp
    WLANG=lang
     
    BIN=$(WBIN)/test1
     
    SRCS=$(wildcard $(WSRC)/*.cpp)
     
    OBJS=$(SRCS:.cpp=.o)
    OBJ1=$(notdir $(OBJS))
    OBJS := $(addprefix $(WOBJ)/,$(OBJ1))
     
    CPPFLAGS=-Wall -g -O2 -I. -c -o
    LDFLAGS=-lfl
     
    all:$(BIN)
    	echo "************ Génération terminée ! ************"
    	@echo $(OBJS)
     
    $(BIN):$(OBJS)
    	@echo "************ Génération" $(notdir $@) "dans" $(WBIN) "************";
    	$(LD) -o $@ $(OBJS) $(LDFLAGS)
    	@echo "\n"
     
    $(WOBJ)/%.o:$(WSRC)/%.cpp $(WSRC)/%.h
    	@echo "************ Génération de" $(notdir $@) "dans" $(WOBJ) "************";
    	$(CPP) $(CPPFLAGS) $@ $^
    	@echo "\n"
     
    $(WSRC)/%.cpp:$(WLANG)/%.y 
    	@echo "************ Génération de" $(notdir $@) "avec" $(BIS) "dans" $(WSRC) "************";
    	$(BIS) -d -o $@ $<
    	@echo "\n"
     
    $(WSRC)/%.cpp:$(WLANG)/%.l
    	@echo "************ Génération de" $(notdir $@) "avec" $(EX) "dans" $(WSRC) "************";
    	$(EX) -o$@ $<;
    	@echo "\n"
     
    .PHONY: clean distclean
     
    clean:
    	@echo "************ Suppression de" $(notdir $(OBJS)) "présent dans" $(WOBJ) "************";
    	rm -rf $(OBJS)
    	@echo "\n"
     
    distclean:
    	@echo "************ Suppression de" $(notdir $(BIN)) "présent dans" $(WBIN) "************";
    	rm -rf $(BIN)
    	@echo "\n"
    Voila et nous avons noté un petit truc c'est qu'on dirait que lors du make, notre compilation ne parcours pas les endroits ou on compile notre flex (.l) et notre bison (.y)

    Merci vraiment à ceux qui pourront m'aider là-dessus.

  2. #2
    Membre averti
    Homme Profil pro
    Gérant infopsylon
    Inscrit en
    Juin 2010
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Gérant infopsylon
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2010
    Messages : 215
    Points : 328
    Points
    328
    Par défaut
    Bonjour,

    Quel était ton procédé de génération (même manuel), avant d'avoir écrit ce makefile ?

    Lilian.

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 80
    Points : 65
    Points
    65
    Par défaut
    Au tout début, nous avions ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    flex -olexer.c lexer.l
    bison -d -o parser.c parser.y
    gcc -o parser.o -c parser.c
    gcc -o lexer.o -c lexer.c
    gcc -o main parser.o lexer.o -lfl
    mais par la suite avec l'évolution du projet nous avons inclu les .h dans les lignes de compilation au niveao de la génération des .o.

    Nous avons également ajouté 4 nouveaux fichiers (2 .cpp et 2 .h) qui sont inclu dans ce projet.

  4. #4
    Membre averti
    Homme Profil pro
    Gérant infopsylon
    Inscrit en
    Juin 2010
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Gérant infopsylon
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2010
    Messages : 215
    Points : 328
    Points
    328
    Par défaut
    De ce que je vois (entrevois) dans le log, effectivement il y a eu des changements...

    Mais j'arrive difficilement à faire le lien entre les éléments de ton dernier post, et ce que tu as dans ton makefile.

    Pourrais-tu etre plus exhaustif dans la description de ce que tu as, et aussi comment tu compile l'ensemble à la main.

    Il me semble qu'il y a un petit problème de définition de règle dans ton mk avec la variable $(BIN), tu devrais plutôt utilisé vpath.

    Envois moi quelque chose de plus complet : les fichiers, la ligne qui les compil, ta ligne de link, et ce sera plus facile pour nous de voir ce qui ne va pas.

    Lilian.

    PS : Sinon, tu peux aussi m'envoyer tes sources par MP

Discussions similaires

  1. Erreur de Compilation : file not recognized File truncated
    Par doommick31 dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 29/09/2009, 14h00
  2. Problème file format not recognized
    Par pinguin31ju2411 dans le forum Linux
    Réponses: 3
    Dernier message: 24/03/2009, 15h38
  3. exp file= format nom de fichier
    Par cdu dans le forum Import/Export
    Réponses: 4
    Dernier message: 03/03/2006, 11h01
  4. MP3 File Format pour affichage spectre (image sonore)
    Par TISSEYRE dans le forum Langage
    Réponses: 1
    Dernier message: 27/09/2005, 14h50
  5. Réponses: 6
    Dernier message: 30/07/2003, 14h59

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