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] CXXFLAGS et LDFLAGS non definis


Sujet :

Systèmes de compilation

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 18
    Points : 20
    Points
    20
    Par défaut [Makefile] CXXFLAGS et LDFLAGS non definis
    Bonjour,

    Je suis en train d'etudier un compilateur particulier, qui s'appelle AspectC++ pour programmer oriente aspect, mais je ne pense pas que ma question demande de connaitre ce sujet-la.

    Ce compilateur s'utilise sous Linux, et est donc fourni avec un Makefile et quelques exemples a compiler.

    Je debute depuis quelques mois sur Linux, et ma question se porte sur le contenu du Makefile : dedans sont utilisees les variables CXXFLAGS et LDFLAGS, mais celles-ci ne sont definies nulle part dans le Makefile. J'ai cru comprendre (a confirmer ?) que dans ce cas elles sont definies par defaut avec les variables d'environnement. Mais je ne les trouve pas quand j'ecrisen ligne de commande.


    Voici les fichiers Makefile (il y en a plusieurs) :

    Makefile "racine" situe au meme niveau que le compilateur "aspect" :

    Ce n'est pas ce Makefile qui est concerne, mais je le mets quand meme dans le doute...

    (Remarque : ACXX ou ag++ correspond au compilateur aspect combine au compilateur g++, et ACFLAGS aux options de ag++)

    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
    ACFLAGS ?= -v1 -k
    ACXX    ?= $(PWD)/ag++
    export ACXX
     
    ACTESTS = $(filter-out Makefile%, $(filter-out CVS,$(notdir $(wildcard $(PWD)/examples/*))))
     
    .PHONY: $(ACTESTS)
     
    all: testrun
     
    test: $(addsuffix .make, $(ACTESTS))
     
    testrun: test $(addsuffix .run, $(ACTESTS))
     
    clean: $(addsuffix .clean, $(ACTESTS))
     
    %.make: %
        make -C examples/$<
     
    %.run: %
        make -C examples/$< run
     
    %.clean: %
        make -C examples/$< clean
    Makefile "generique" (Makefile.generic) dans le dossier examples :

    C'EST CE MAKEFILE QUI EST CONCERNE ! -> dans $(PROG), $(JUNK)/%.o, et $(JUNK)/%.d

    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
    CXX ?= g++
    ACXX ?= ag++
     
    PROG:=$(shell basename $$PWD)
     
    SOURCES := $(wildcard *.cc)
     
    JUNK    := Junk
    OBJECTS := $(addprefix $(JUNK)/,$(patsubst %.cc,%.o,$(SOURCES)))
    DEPS    := $(addprefix $(JUNK)/,$(patsubst %.cc,%.d,$(SOURCES)))
    HEADERS := $(wildcard *.h)
    ASPECTS := $(wildcard *.ah)
    INCLUDE_LIST := $(patsubst %.ah,-include %.ah,$(ASPECTS))
     
    all: $(PROG)
     
    run: all
        ./$(PROG)
     
    $(PROG): $(OBJECTS)
        @echo Linking $@
        @$(CXX) $(CXXFLAGS) -o $@ $(OBJECTS) $(LDFLAGS)
     
    clean:
        @rm -rf *.o $(JUNK) $(PROG)
     
    $(JUNK)/%.o : %.cc
        @echo Compiling $<
        @$(ACXX) $(CXXFLAGS) -x c++ -c $< -o $@
     
    $(JUNK)/%.d : %.cc
        @mkdir -p $(JUNK)
        @$(CXX) $(CXXFLAGS) -x c++ -MM $(INCLUDE_LIST) $< | \
            sed -e "s/$*\.o/$(JUNK)\/& $(JUNK)\/$*.d/g" > $@
     
     
    ifneq ($(MAKECMDGOALS),clean)
    -include $(DEPS)
    endif
     
    .PHONY: clean all
     
    # don't remove any intermediate files
    .SECONDARY:
    Un dernier Makefile qui est dans chaque repertoire examples/example_i, dans lesquels il y a les fichiers sources de l'exemple i a compiler :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include ../Makefile.generic
    Que peuvent donc contenir CXXFLAGS et LDFLAGS ???

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 18
    Points : 20
    Points
    20
    Par défaut
    j'ai enleve le "@" devant les lignes ou sont appeles CXXFLAGS et LDFLAGS, ce qui m'a permis d'afficher la commande juste avant son execution, et CXXFLAGS et LDFLAGS sont vides.. ce qui parait logique vu qu'ils n'ont pas ete definis

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

Discussions similaires

  1. [Débutant]Erreur Symbole non défini
    Par sitirna dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/08/2006, 11h06
  2. [vb6] err "nom externe non defini"
    Par lumbroso dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 28/07/2006, 11h50
  3. UCase : Fonction non définie
    Par tane dans le forum IHM
    Réponses: 5
    Dernier message: 12/06/2006, 19h57
  4. Réponses: 2
    Dernier message: 16/05/2006, 13h44
  5. [VBA] MsgBox non definie
    Par coco21 dans le forum Access
    Réponses: 3
    Dernier message: 15/12/2005, 10h05

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