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

GTK+ avec C & C++ Discussion :

Ajouter des bibliothèques dans un Makefile


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 191
    Par défaut Ajouter des bibliothèques dans un Makefile
    Salut,

    Le titre résume tout. Je voudrais savoir comment on rajoute des bibliothèques dans un makefile et à quel moment on y place le chemin.????

    Merci

  2. #2
    Membre expérimenté

    Inscrit en
    Mai 2005
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 132
    Par défaut
    Salut,

    il n'y a rien plus facile (biensur si tu le sais...)

    Il existe deux parameters:

    "-l" ajoute une bibliotheque
    "-L" ajoute une chemin

    Dans mon project j'ai besoin d'utiliser la bibliotheque pour SQLite, donc j'ai ecrit :

    LOADLIBES := -lm -L/opt/sqlite-3.3.4/.libs -lsqlite3

    Le nom de bibliotheque IL FAUT ECRIRE SANS "lib" et suffixe ( quand meme le fichier s'appelle libsqlite3.so ).

    Bonne chance. Fredy

  3. #3
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 191
    Par défaut
    Oui mais a quel moment tu mets le chemin spécifique??

    Peux tu me montrer ton make au complet stp???

  4. #4
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 191
    Par défaut
    en faite lorsque j'utilise mon makefile sur une machine ubuntu je n'ai pas de soucis par contre lorsque je l'utilise sur une machine fedora il y a des problemes car il ne reconnait pas la bibli GTK

    Voici le make
    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
     
    #
    # Variables:
    #
    CC = gcc
    BIN = Recepteur
    SRC = interface_main.c copy_data.c Quitter.c Verification.c lecture_data.c files_attenuation.c
    OBJ = interface_main.o copy_data.o Quitter.o Verification.o lecture_data.o files_attenuation.o
     
     
    #
    # Flags d'erreurs:
    #
    ERROR_CFLAGS = -Wall -W -pedantic -g -03
     
     
    #
    # Flags pour le compilateur:
    #
    GLIB_CFLAGS = $$(pkg-config --cflags glib-2.0)
    PANGO_CFLAGS = $$(pkg-config --cflags pango)
    GTK_CFLAGS := $$(pkg-config --cflags gtk+-2.0)
     
    CFLAGS = $(ERROR_FLAGS) $(GLIB_CFLAGS) $(PANGO_CFLAGS) $(GTK_CFLAGS)
     
     
    #
    # Flags pour l'editeur de liens:
    #
    GLIB_LDFLAGS = $$(pkg-config --libs glib-2.0)
    PANGO_LDFLAGS = $$(pkg-config --libs pango)
    GTK_LDFLAGS = $$(pkg-config --libs gtk+-2.0)
     
    LDFLAGS = $(ERROR_FLAGS) $(GLIB_LDFLAGS) $(PANGO_LDFLAGS) $(GTK_LDFLAGS)
     
     
    #
    # Construction du programme:
    #
    all: $(BIN)
     
    $(BIN): $(SRC)
    	$(CC) $(CFLAGS) -c $(SRC)
    	$(CC) $(LDFLAGS) -o $(BIN) $(OBJ)
     
     
    #
    # Nettoyage:
    #
    clean:
    	rm -f *.o *~ core $(BIN)
    (En faite je reutilise un make fournit par franck)
    Je ne comprends pas pourquoi ici ce make marche sous ubuntu est il n'ya aucun chemin????

    De meme pouvez vous m'expliquer cette partie du code

    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
    # Flags pour le compilateur:
    #
    GLIB_CFLAGS = $$(pkg-config --cflags glib-2.0)
    PANGO_CFLAGS = $$(pkg-config --cflags pango)
    GTK_CFLAGS := $$(pkg-config --cflags gtk+-2.0)
     
    CFLAGS = $(ERROR_FLAGS) $(GLIB_CFLAGS) $(PANGO_CFLAGS) $(GTK_CFLAGS)
     
    #
    # Flags pour l'editeur de liens:
    #
    GLIB_LDFLAGS = $$(pkg-config --libs glib-2.0)
    PANGO_LDFLAGS = $$(pkg-config --libs pango)
    GTK_LDFLAGS = $$(pkg-config --libs gtk+-2.0)
     
    LDFLAGS = $(ERROR_FLAGS) $(GLIB_LDFLAGS) $(PANGO_LDFLAGS) $(GTK_LDFLAGS)
    Merci

  5. #5
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Est-tu sûr que GTK+ est bien installé sur la Fedora ? J'entend par là, pas que les runtimes mais les fichiers de développement également ! Vérifié également que pkg-config soit installé !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  6. #6
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par insa59
    De meme pouvez vous m'expliquer cette partie du code

    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
    # Flags pour le compilateur:
    #
    GLIB_CFLAGS = $$(pkg-config --cflags glib-2.0)
    PANGO_CFLAGS = $$(pkg-config --cflags pango)
    GTK_CFLAGS := $$(pkg-config --cflags gtk+-2.0)
     
    CFLAGS = $(ERROR_FLAGS) $(GLIB_CFLAGS) $(PANGO_CFLAGS) $(GTK_CFLAGS)
     
    #
    # Flags pour l'editeur de liens:
    #
    GLIB_LDFLAGS = $$(pkg-config --libs glib-2.0)
    PANGO_LDFLAGS = $$(pkg-config --libs pango)
    GTK_LDFLAGS = $$(pkg-config --libs gtk+-2.0)
     
    LDFLAGS = $(ERROR_FLAGS) $(GLIB_LDFLAGS) $(PANGO_LDFLAGS) $(GTK_LDFLAGS)
    Ca initialise des variables comme par exemple ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GLIB_CFLAGS = $$(pkg-config --cflags glib-2.0)
    Rempli la variable avec le résultat de la commande pkg-config --cflags glib-2.0 ce qui donne sur ma console:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
    Ca fait de même pour les autres variables. Les deux catégories correspondent en fait dans l'ordre à:
    1. Les chemins des fichiers d'en-tête et leur différents chemins pour que le compilateur sache où les trouver pour réussir à compiler correctement.
    2. Le second bloc ne fournit quant à lui pas le chemin mais les différentes bibliothèques de fonctions à lier au fichier exécutable (des fichiers *.lib, *.a, *.o même parfois) !


    En espérant avoir pû t'aider
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  7. #7
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 191
    Par défaut
    désolé d'insister mais je n'arrive pas a bien comprendre le makefile.

    1- J'aimerai savoir comment on fait pour rajouter les librairies GTK dans notre makefile
    Je dispose deja de celui de ci dessus mais je n'arrive pas a comprendre a quelle moment on rajoute les bibliotheque durant la compilation et l'edition de lien
    (il n'y a pas de chemin spécifié)

    2- Une autre question : j'ai mon IHM qui a son makefile, cette IHM utilise des fichiers d'un sous répertoire qui ont leurs propre makefile. Je voulais savoir comment je devais faire pour la compilation des 2 makefiles
    Peut on utilisé un makefile maitre pour l'IHM et un makefile esclave pour le makefile du fichier ( idée dans le tuto suivant)

    Merci pour votre aide

  8. #8
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par insa59
    désolé d'insister mais je n'arrive pas a bien comprendre le makefile.

    1- J'aimerai savoir comment on fait pour rajouter les librairies GTK dans notre makefile
    Je dispose deja de celui de ci dessus mais je n'arrive pas a comprendre a quelle moment on rajoute les bibliotheque durant la compilation et l'edition de lien (il n'y a pas de chemin spécifié)
    Il n'y a rien à rajouter, y'a tout ce qu'il faut pour compiler un projet GTK+ ! Si le Makefile fonctionne sur une distribution mais pas sur une autre cela ne viens en aucun cas du Makefile mais de l'installation (possiblement mal faite) de GTK+ sur la distribution en cause !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/11/2009, 09h41
  2. Gestion des headers dans un Makefile
    Par Weren dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 09/11/2004, 10h44
  3. Ajouter des chemins dans la variable PATH
    Par Righetto Dominique dans le forum Linux
    Réponses: 7
    Dernier message: 21/03/2004, 17h38
  4. [VBA-E] Ajouter des fonctions dans Excel
    Par Clezio dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/03/2004, 01h18
  5. Ajouter des contrôles dans la palette des contrôles.
    Par WOLO Laurent dans le forum MFC
    Réponses: 4
    Dernier message: 22/01/2004, 08h27

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