我正在使用Eclipse CDT开发C软件。我想使用glib,但是它总是报告“ Unresolved inclusion :”。我已经在我的ubuntu上安装了glib:

carl@Carl:~$ dpkg -l | grep libglib
ii  libglib-perl                          2:1.223-1
ii  libglib2.0-0                          2.28.6-0ubuntu1
ii  libglib2.0-bin                        2.28.6-0ubuntu1
ii  libglib2.0-cil                        2.12.10-1ubuntu1
ii  libglib2.0-data                       2.28.6-0ubuntu1
ii  libglib2.0-dev                        2.28.6-0ubuntu1
ii  libglib2.0-doc                        2.28.6-0ubuntu1
ii  libglibmm-2.4-1c2a                    2.28.0-1

我是C的新生。尽管我发现了一些建议:
% gcc test.c -Wall -o test `pkg-config --cflags --libs glib-2.0`

但是我不知道如何通过我的Makefile使它起作用:
CC=         gcc
CXX=        g++
CFLAGS=     -ggdb -g -Wall -O2
CXXFLAGS=   $(CFLAGS)
DFLAGS=     -DHAVE_PTHREAD #-D_FILE_OFFSET_BITS=64
OBJS=       rand.o
PROG=       peta
INCLUDES=
LIBS=       -lm -lz -lpthread -Lbwt_gen -lbwtgen
SUBDIRS=    . bwt_gen

.SUFFIXES:.c .o .cc

.c.o:
        $(CC) -c $(CFLAGS) $(DFLAGS) $(INCLUDES) $< -o $@
.cc.o:
        $(CXX) -c $(CXXFLAGS) $(DFLAGS) $(INCLUDES) $< -o $@

all:$(PROG)

lib-recur all-recur clean-recur cleanlocal-recur install-recur:
        @target=`echo $@ | sed s/-recur//`; \
        wdir=`pwd`; \
        list='$(SUBDIRS)'; for subdir in $$list; do \
            cd $$subdir; \
            $(MAKE) CC="$(CC)" CXX="$(CXX)" DFLAGS="$(DFLAGS)" CFLAGS="$(CFLAGS)" \
                INCLUDES="$(INCLUDES)" $$target || exit 1; \
            cd $$wdir; \
        done;

lib:

peta:lib-recur $(OBJS) main.o
        $(CC) $(CFLAGS) $(DFLAGS) $(OBJS) main.o -o $@ $(LIBS)

cleanlocal:
        rm -f gmon.out *.o a.out $(PROG) *~ *.a

clean:cleanlocal-recur

有人可以帮我吗?谢谢。

最佳答案

在LIBS指令的末尾附加以下内容:

$(shell pkg-config --libs glib-2.0)

这到您的CXXFLAGS和CFLAGS:
$(shell pkg-config --cflags glib-2.0)

这样就可以了。

关于makefile - 如何在Makefile中配置glib?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7846946/

10-11 22:20
查看更多