glib não é problema seu. Isto é:
re.c:(.text+0xd6): undefined reference to 'print_uppercase_words'
O que ele está dizendo é que você está chamando uma função print_uppercase_words
, mas não consegue encontrá-la.
E há um motivo. Olhe bem de perto. Há um erro de digitação:
void print_upppercase_words(const gchar *string)
Depois de corrigir isso, você ainda pode ter um problema porque está especificando as bibliotecas antes dos módulos que requerem essas bibliotecas. Em suma, seu comando deve ser escrito
gcc -o re re.o -lglib-2.0
para que -lglib-2.0
venha depois de re.o
.
Então eu escreveria seu Makefile mais assim:
re.o: re.c
$(CC) -I<includes> -o $@ -c $^
re: re.o
$(CC) $^ -l<libraries> -o $@
De fato, se você definir as variáveis certas, make
irá descobrir tudo automaticamente.
CFLAGS=$(shell pkg-config --cflags glib-2.0)
LDLIBS=$(shell pkg-config --libs glib-2.0)
CC=gcc
re: re.o