Search code examples
cmakefilecompiler-errorsglib

Include glib library in Makefile


I'm not an expert of Makefile. In my program I'm using hashtables of glib.h so in my Makefile I wrote this:

exec: bin/test
    bin/test

clean:
    rm -f build/* bin/*

CFLAGS = -g -Wall -Wpedantic -Wno-padded -O $(shell pkg-config --cflags --libs glib-2.0)

INCLUDES = include/*.h

COMMON_DEPS = $(INCLUDES) Makefile

build/%.o: src/%.c $(COMMON_DEPS)
    $(CC) $(CFLAGS) -c $< -o $@

bin/test: /* functions.o*/ $(COMMON_DEPS)
$(CC) -o bin/test /* functions.o*/

But when I execute the Makefile I receive a list of these error messages:

...
functions.c: undefined reference to "g_str_hash"
functions.c: undefined reference to "g_str_equal"
...

I don't understand why


Solution

  • At the end I solved it in this way:

    exec: bin/test
        bin/test
    
    clean:
        rm -f build/* bin/*
    
    CFLAGS = -g -Wall -Wpedantic -Wno-padded -O $(shell pkg-config --cflags glib-2.0)
    
    LFLAGS = $(shell pkg-config --libs glib-2.0)
    
    INCLUDES = include/*.h
    
    COMMON_DEPS = $(INCLUDES) Makefile
    
    build/%.o: src/%.c $(COMMON_DEPS)
        $(CC) $(CFLAGS) -c $< -o $@
    
    bin/test: /*functions.o */ $(COMMON_DEPS)
        $(CC) -o bin/test /*functions.o */ $(LFLAGS)