Bonjour !
Voila j'ai une compilation qui réussi mais je ne sais pas pourquoi.
Mon projet n'a que le main.c
Je suis obligé de faire ceci :
Code :
- gcc `pkg-config --cflags --libs gtk+-2.0` -o tmp main.c
|
Alors qu'avec mon Makefile, cela ne passe pas :
Code :
- DEBUG=y
- CC=gcc
- ifeq ($(DEBUG),y)
- CFLAGS=-W -Wall -ansi -pedantic -g
- else
- CFLAGS=-W -Wall -ansi -pedantic
- endif
- LDFLAGS='pkg-config --cflags --libs gtk+-2.0'-DGTK_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DG_DISABLE_DEPRECATED
- EXEC=newGTK
- SRC= $(wildcard *.c)
- OBJ= $(SRC:.c=.o)
- all: echo $(EXEC)
- echo :
- ifeq ($(DEBUG),y)
- @echo "Mode debug activé"
- endif
- newGTK: $(OBJ)
- $(CC) -o $@ $^ $(LDFLAGS)
- %.o: %.c
- $(CC) -o $@ -c $< $(CFLAGS)
- .PHONY: clean cleanall
- clean:
- rm -rf *.o
- cleanall: clean
- rm -rf $(EXEC)
|
Voici l'erreur :
Code :
- yo@yo-laptop:~/Documents/projets/C/newGTK$ make
- Mode debug activé
- gcc -o main.o -c main.c -W -Wall -ansi -pedantic -g
- main.c:2:21: error: gtk/gtk.h: No such file or directory
- main.c:4: error: expected ‘)’ before ‘*’ token
- main.c: In function ‘main’:
- main.c:14: error: ‘GtkWidget’ undeclared (first use in this function)
- main.c:14: error: (Each undeclared identifier is reported only once
- main.c:14: error: for each function it appears in.)
- main.c:14: error: ‘button’ undeclared (first use in this function)
- main.c:15: error: ‘win’ undeclared (first use in this function)
- main.c:16: error: ‘vbox’ undeclared (first use in this function)
- main.c:19: warning: implicit declaration of function ‘g_log_set_handler’
- main.c:19: error: ‘G_LOG_LEVEL_WARNING’ undeclared (first use in this function)
- main.c:19: error: ‘GLogFunc’ undeclared (first use in this function)
- main.c:19: error: expected ‘)’ before ‘gtk_false’
- main.c:20: warning: implicit declaration of function ‘gtk_init’
- main.c:21: error: ‘g_log_default_handler’ undeclared (first use in this function)
- main.c:24: warning: implicit declaration of function ‘gtk_window_new’
- main.c:24: error: ‘GTK_WINDOW_TOPLEVEL’ undeclared (first use in this function)
- main.c:25: warning: implicit declaration of function ‘gtk_container_set_border_width’
- main.c:25: warning: implicit declaration of function ‘GTK_CONTAINER’
- main.c:26: warning: implicit declaration of function ‘gtk_window_set_title’
- main.c:26: warning: implicit declaration of function ‘GTK_WINDOW’
- main.c:27: warning: implicit declaration of function ‘gtk_window_set_position’
- main.c:27: error: ‘GTK_WIN_POS_CENTER’ undeclared (first use in this function)
- main.c:28: warning: implicit declaration of function ‘gtk_widget_realize’
- main.c:29: warning: implicit declaration of function ‘g_signal_connect’
- main.c:29: error: ‘gtk_main_quit’ undeclared (first use in this function)
- main.c:32: warning: implicit declaration of function ‘gtk_vbox_new’
- main.c:32: error: ‘TRUE’ undeclared (first use in this function)
- main.c:33: warning: implicit declaration of function ‘gtk_container_add’
- main.c:35: warning: implicit declaration of function ‘gtk_button_new_from_stock’
- main.c:35: error: ‘GTK_STOCK_DIALOG_INFO’ undeclared (first use in this function)
- main.c:36: warning: implicit declaration of function ‘G_OBJECT’
- main.c:36: warning: implicit declaration of function ‘G_CALLBACK’
- main.c:36: error: ‘helloWorld’ undeclared (first use in this function)
- main.c:36: error: ‘gpointer’ undeclared (first use in this function)
- main.c:36: error: expected ‘)’ before ‘win’
- main.c:37: warning: implicit declaration of function ‘gtk_box_pack_start’
- main.c:37: warning: implicit declaration of function ‘GTK_BOX’
- main.c:39: error: ‘GTK_STOCK_CLOSE’ undeclared (first use in this function)
- main.c:44: warning: implicit declaration of function ‘gtk_widget_show_all’
- main.c:45: warning: implicit declaration of function ‘gtk_main’
|
Pourquoi dans la ligne de commande gcc, je compile directement sans passer par un .o ? et pourquoi donc dans ce cas mon Makefile ne marche pas ? (qui lui passe par une étape supplémentaire)