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![]()
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![]()
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
Oui mais a quel moment tu mets le chemin spécifique??
Peux tu me montrer ton make au complet stp???
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
(En faite je reutilise un make fournit par franck)
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)
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
Merci
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)
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 !
Ca initialise des variables comme par exemple ceci:Envoyé par insa59
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 GLIB_CFLAGS = $$(pkg-config --cflags glib-2.0)
Ca fait de même pour les autres variables. Les deux catégories correspondent en fait dans l'ordre à:
Code : Sélectionner tout - Visualiser dans une fenêtre à part -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
- 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.
- 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 !
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
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 !Envoyé par insa59
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 !
Partager