Compilation GTK

Fermé
sarah45 - 9 juin 2014 à 17:06
 sarah45 - 9 juin 2014 à 23:53
Bonjour,

Bonjour, j'ai un programme des plus basiques en GTK, écrit en C, lorsque je tape ceci dans mon shell:

gcc 'pkg-config --cflags gtk+-3.0' main.c -o test 'pkg-config --libs gtk+-3.0

tout va bien et mon programme est bien crée.

Mais j'ai essayé de faire un Makefile qui fait exactement la même chose:

CC = gcc

CFLAGS = -Wall
CFLAGS += -D_XOPEN_SOURCE=500
CFLAGS += -g
GTK_CFLAGS = 'pkg-config --cflags gtk+-3.0'
GTK_LDFLAGS = 'pkg-config --libs gtk+-3.0'

RM = rm -f

NAME = test

SRCS = main.c

OBJS = $(SRCS:.c=.o)

all: $(NAME)

$(NAME): $(OBJS)
$(CC) $(GTK_CFLAGS) $(SRCS) -o $(NAME) $(GTK_LDFLAGS)

clean:
$(RM) $(OBJS)

fclean: clean
$(RM) $(NAME) *~

re: fclean all

Et là j'ai cette erreur suivante:

In file included from main.c:1:0:
main.h:4:21: fatal error: gtk/gtk.h: Aucun fichier ou dossier de ce type
compilation terminated.
make: *** [main.o] Erreur 1

Quelqu'un pourrait il m'expliquer pourquoi ça ne marche pas et comment corriger le Makefile?
Merci bien.

2 réponses

GRDX Messages postés 128 Date d'inscription samedi 10 août 2013 Statut Membre Dernière intervention 9 juin 2014 30
Modifié par GRDX le 9/06/2014 à 17:43
Bonjour,
essaie d'échapper les simple quotes.

Edit: en cherchant un peu:
Problème de Makefile.. Compilation GTK
Exemple 1 Makefile
Exemple 2 Makefile
0
ça veut dire quoi échapper les simples quotes?

le fait d'écrire GTK_CFLAGS = $(shell pkg-config --cflags gtk+-3.0)

n'a pas résolu le problème...
0
GRDX Messages postés 128 Date d'inscription samedi 10 août 2013 Statut Membre Dernière intervention 9 juin 2014 30
9 juin 2014 à 22:10
Je viens de tester avec ce Makefile minimaliste:
CC = gcc

GTK_CFLAGS = $(shell pkg-config --cflags gtk+-3.0)
GTK_LIBS = $(shell pkg-config --libs gtk+-3.0)

#GTK_CFLAGS = 'pkg-config --cflags gtk+-3.0' 
#GTK_LIBS = 'pkg-config --libs gtk+-3.0'

all:
        $(CC) $(GTK_CFLAGS) -o example-0 example-0.c $(GTK_LIBS)

clean:  
        rm example-0


et tout fonctionne chez moi, tu peux essayer avec les back quotes mais cela reviens quasiment au même.
0
Merci ça fonctionne mais alors pourquoi mon Makefile ne fonctionnait pas...?
0