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 : Warning édition des liens


Sujet :

Linux

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 103
    Points : 48
    Points
    48
    Par défaut Makefile : Warning édition des liens
    Bonsoir,

    J'ai réalisé un makefile qui fonctionne bien mais le seul problème est qu'il m'affiche un warning à chaque compilation.
    J'utilise SDL comme librairie supplémentaire. Elle n'est utilisé que par le fichier process.c.

    Voici 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
     
    .SILENT:
     
    EXEC = mandelbrot
    SRCS = $(wildcard *.c)
    OBJS = $(SRCS:.c=.o)
     
    CC = cc
    CFLAGS += -W -Wall -std=c99 --pedantic `sdl-config --cflags --libs`
     
    all: $(EXEC)
     
    $(EXEC): $(OBJS)
    	$(CC) $(CFLAGS) $(OBJS) -o $(EXEC)
     
    %.o:	%.c %.h
    	$(CC) $(CFLAGS) -c $<
     
    clean:
    	@rm -f tags $(OBJS) core
    clobber:	clean
    	@rm -f tags $(EXEC)
    et voici le résultat de la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    cc: -lSDL: fichier d'entrée d'édition de liens n'est pas utilisé parce l'édition de lien n'a pas été faite
    cc: -lSDL: fichier d'entrée d'édition de liens n'est pas utilisé parce l'édition de lien n'a pas été faite 
    cc: -lSDL: fichier d'entrée d'édition de liens n'est pas utilisé parce l'édition de lien n'a pas été faite
    Merci,

    Bonne soirée,

    Dimitri

  2. #2
    Membre confirmé

    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2005
    Messages : 464
    Points : 646
    Points
    646
    Par défaut
    Tout est là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    `sdl-config --cflags --libs`
    !
    Tu appliques à la fois les flags de compilation et les flags d'édition des liens lors de la compilation, alors que tu as séparé ces étapes.
    Tu dois créer deux flags :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CFLAGS=`sdl-config --cflags`
    LDFLAGS=`sdl-config --libs`
    Tu conserves donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(CC) -MD -o $@ -c $< $(CFLAGS)
    Mais dans l'édition des liens tu ajoutes CFLAGS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    monbinaire: $(OBJS)
    	$(CC) -o $@ $^ $(LDFLAGS)
    Sinon ton Makefile est pas mal sauf en ce qui concerne les dépendances :
    Cela ne t'oblige-t'il pas a ecrire le fichier d'entete pour chaque .c ?
    De plus les dépendances sur d'autre fichiers ne sont pas supportees.
    Ajouter -MD (spécifique GNU) lors de la compilation permet de générer automatiquement un fichier de dépendance (*.d)
    Il te suffit ensuite de l'inclure dans ton makefile avec :

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 103
    Points : 48
    Points
    48
    Par défaut
    Ok, merci pour cette réponse très claire et rapide.
    En effet, la gestion des dépendances n'est pas la meilleur, je vais un peu creuser la piste que tu m'as donnnée.

    Encore merci pour tes précieux conseils.

    Bonne soirée

    Dimitri

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

Discussions similaires

  1. Problème d'édition des liens dans un makefile
    Par rodolph dans le forum Débuter
    Réponses: 6
    Dernier message: 07/04/2014, 16h26
  2. MakeFile et édition des liens
    Par gronaze dans le forum C
    Réponses: 4
    Dernier message: 09/11/2011, 13h59
  3. [VC++] Erreur d'édition des liens LNK1143
    Par Yellowmat dans le forum MFC
    Réponses: 6
    Dernier message: 01/02/2006, 16h00
  4. [Dev-C++] Problème d'édition des liens
    Par shura dans le forum EDI
    Réponses: 5
    Dernier message: 30/08/2005, 10h35
  5. Problème à l'édition des liens avec BCC55 et Xerces
    Par ShootDX dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 30/11/2003, 15h50

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